home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / cmds / gdb-4.5 / dist / include / opcode / m68k.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-04-07  |  114.7 KB  |  1,998 lines

  1. /* Opcode table for m680[01234]0/m6888[12]/m68851.
  2.    Copyright (C) 1989, 1991 Free Software Foundation.
  3.  
  4. This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler.
  5.  
  6. Both GDB and GAS are free software; you can redistribute and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 1, or (at your option)
  9. any later version.
  10.  
  11. GDB and GAS are distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GDB or GAS; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. /* These are used as bit flags for arch below. */
  21.  
  22. enum m68k_architecture {
  23.     _m68k_undef = 0,
  24.     m68000 = 0x01,
  25.     m68008 = m68000, /* synonym for -m68000.  otherwise unused. */
  26.     m68010 = 0x02,
  27.     m68020 = 0x04,
  28.     m68030 = 0x08,
  29.     m68040 = 0x10,
  30.     m68881 = 0x20,
  31.     m68882 = m68881, /* synonym for -m68881.  otherwise unused. */
  32.     m68851 = 0x40,
  33.  
  34.  /* handy aliases */
  35.     m68040up = m68040,
  36.     m68030up = (m68030 | m68040up),
  37.     m68020up = (m68020 | m68030up),
  38.     m68010up = (m68010 | m68020up),
  39.     m68000up = (m68000 | m68010up),
  40.  
  41.     mfloat = (m68881 | m68882 | m68040),
  42.     mmmu   = (m68851 | m68030 | m68040)
  43. }; /* enum m68k_architecture */
  44.  
  45.  /* note that differences in addressing modes that aren't distinguished
  46.     in the following table are handled explicitly by gas. */
  47.  
  48. struct m68k_opcode {
  49.   char *name;
  50.   unsigned long opcode;
  51.   unsigned long  match;
  52.   char *args;
  53.   enum m68k_architecture arch;
  54. };
  55.  
  56. /* We store four bytes of opcode for all opcodes because that
  57.    is the most any of them need.  The actual length of an instruction
  58.    is always at least 2 bytes, and is as much longer as necessary to
  59.    hold the operands it has.
  60.  
  61.    The match component is a mask saying which bits must match
  62.    particular opcode in order for an instruction to be an instance
  63.    of that opcode.
  64.  
  65.    The args component is a string containing two characters
  66.    for each operand of the instruction.  The first specifies
  67.    the kind of operand; the second, the place it is stored.  */
  68.  
  69. /* Kinds of operands:
  70.    D  data register only.  Stored as 3 bits.
  71.    A  address register only.  Stored as 3 bits.
  72.    a  address register indirect only.  Stored as 3 bits.
  73.    R  either kind of register.  Stored as 4 bits.
  74.    F  floating point coprocessor register only.   Stored as 3 bits.
  75.    O  an offset (or width): immediate data 0-31 or data register.
  76.       Stored as 6 bits in special format for BF... insns.
  77.    +  autoincrement only.  Stored as 3 bits (number of the address register).
  78.    -  autodecrement only.  Stored as 3 bits (number of the address register).
  79.    Q  quick immediate data.  Stored as 3 bits.
  80.       This matches an immediate operand only when value is in range 1 .. 8.
  81.    M  moveq immediate data.  Stored as 8 bits.
  82.       This matches an immediate operand only when value is in range -128..127
  83.    T  trap vector immediate data.  Stored as 4 bits.
  84.  
  85.    k  K-factor for fmove.p instruction.   Stored as a 7-bit constant or
  86.       a three bit register offset, depending on the field type.
  87.  
  88.    #  immediate data.  Stored in special places (b, w or l)
  89.       which say how many bits to store.
  90.    ^  immediate data for floating point instructions.   Special places
  91.       are offset by 2 bytes from '#'...
  92.    B  pc-relative address, converted to an offset
  93.       that is treated as immediate data.
  94.    d  displacement and register.  Stores the register as 3 bits
  95.       and stores the displacement in the entire second word.
  96.  
  97.    C  the CCR.  No need to store it; this is just for filtering validity.
  98.    S  the SR.  No need to store, just as with CCR.
  99.    U  the USP.  No need to store, just as with CCR.
  100.  
  101.    I  Coprocessor ID.   Not printed if 1.   The Coprocessor ID is always
  102.       extracted from the 'd' field of word one, which means that an extended
  103.       coprocessor opcode can be skipped using the 'i' place, if needed.
  104.  
  105.    s  System Control register for the floating point coprocessor.
  106.    S  List of system control registers for floating point coprocessor.
  107.  
  108.    J  Misc register for movec instruction, stored in 'j' format.
  109.     Possible values:
  110.     0x000    SFC    Source Function Code reg    [40, 30, 20, 10]
  111.     0x001    DFC    Data Function Code reg        [40, 30, 20, 10]
  112.     0x002    CACR    Cache Control Register        [40, 30, 20]
  113.     0x800    USP    User Stack Pointer        [40, 30, 20, 10]
  114.     0x801    VBR    Vector Base reg            [40, 30, 20, 10]
  115.     0x802    CAAR    Cache Address Register        [    30, 20]
  116.     0x803    MSP    Master Stack Pointer        [40, 30, 20]
  117.     0x804    ISP    Interrupt Stack Pointer        [40, 30, 20]
  118.     0x003    TC    MMU Translation Control        [40]
  119.     0x004    ITT0    Instruction Transparent
  120.                 Translation reg 0    [40]
  121.     0x005    ITT1    Instruction Transparent
  122.                 Translation reg 1    [40]
  123.     0x006    DTT0    Data Transparent
  124.                 Translation reg 0    [40]
  125.     0x007    DTT1    Data Transparent
  126.                 Translation reg 1    [40]
  127.     0x805    MMUSR    MMU Status reg            [40]
  128.     0x806    URP    User Root Pointer        [40]
  129.     0x807    SRP    Supervisor Root Pointer        [40]
  130.  
  131.     L  Register list of the type d0-d7/a0-a7 etc.
  132.        (New!  Improved!  Can also hold fp0-fp7, as well!)
  133.        The assembler tries to see if the registers match the insn by
  134.        looking at where the insn wants them stored.
  135.  
  136.     l  Register list like L, but with all the bits reversed.
  137.        Used for going the other way. . .
  138.  
  139.     c  cache identifier which may be "nc" for no cache, "ic"
  140.        for instruction cache, "dc" for data cache, or "bc"
  141.        for both caches.  Used in cinv and cpush.  Always
  142.        stored in position "d".
  143.  
  144.  They are all stored as 6 bits using an address mode and a register number;
  145.  they differ in which addressing modes they match.
  146.  
  147.    *  all                    (modes 0-6,7.*)
  148.    ~  alterable memory                (modes 2-6,7.0,7.1)(not 0,1,7.~)
  149.    %  alterable                    (modes 0-6,7.0,7.1)(not 7.~)
  150.    ;  data                    (modes 0,2-6,7.*)(not 1)
  151.    @  data, but not immediate            (modes 0,2-6,7.? ? ?)(not 1,7.?)  This may really be ;, the 68020 book says it is
  152.    !  control                    (modes 2,5,6,7.*-)(not 0,1,3,4,7.4)
  153.    &  alterable control                (modes 2,5,6,7.0,7.1)(not 0,1,7.? ? ?)
  154.    $  alterable data                (modes 0,2-6,7.0,7.1)(not 1,7.~)
  155.    ?  alterable control, or data register    (modes 0,2,5,6,7.0,7.1)(not 1,3,4,7.~)
  156.    /  control, or data register            (modes 0,2,5,6,7.0,7.1,7.2,7.3)(not 1,3,4,7.4)
  157. */
  158.  
  159. /* JF: for the 68851 */
  160. /*
  161.    I didn't use much imagination in choosing the 
  162.    following codes, so many of them aren't very
  163.    mnemonic. -rab
  164.  
  165.    P  pmmu register
  166.     Possible values:
  167.     000    TC    Translation Control reg
  168.     100    CAL    Current Access Level
  169.     101    VAL    Validate Access Level
  170.     110    SCC    Stack Change Control
  171.     111    AC    Access Control
  172.  
  173.    W  wide pmmu registers
  174.     Possible values:
  175.     001    DRP    Dma Root Pointer
  176.     010    SRP    Supervisor Root Pointer
  177.     011    CRP    Cpu Root Pointer
  178.  
  179.    f    function code register
  180.     0    SFC
  181.     1    DFC
  182.  
  183.    V    VAL register only
  184.  
  185.    X    BADx, BACx
  186.     100    BAD    Breakpoint Acknowledge Data
  187.     101    BAC    Breakpoint Acknowledge Control
  188.  
  189.    Y    PSR
  190.    Z    PCSR
  191.  
  192.    |    memory         (modes 2-6, 7.*)
  193.  
  194. */
  195.  
  196. /* Places to put an operand, for non-general operands:
  197.    s  source, low bits of first word.
  198.    d  dest, shifted 9 in first word
  199.    1  second word, shifted 12
  200.    2  second word, shifted 6
  201.    3  second word, shifted 0
  202.    4  third word, shifted 12
  203.    5  third word, shifted 6
  204.    6  third word, shifted 0
  205.    7  second word, shifted 7
  206.    8  second word, shifted 10
  207.    D  store in both place 1 and place 3; for divul and divsl.
  208.    B  first word, low byte, for branch displacements
  209.    W  second word (entire), for branch displacements
  210.    L  second and third words (entire), for branch displacements (also overloaded for move16)
  211.    b  second word, low byte
  212.    w  second word (entire) [variable word/long branch offset for dbra]
  213.    l  second and third word (entire)
  214.    g  variable branch offset for bra and similar instructions.
  215.       The place to store depends on the magnitude of offset.
  216.    t  store in both place 7 and place 8; for floating point operations
  217.    c  branch offset for cpBcc operations.
  218.       The place to store is word two if bit six of word one is zero,
  219.       and words two and three if bit six of word one is one.
  220.    i  Increment by two, to skip over coprocessor extended operands.   Only
  221.       works with the 'I' format.
  222.    k  Dynamic K-factor field.   Bits 6-4 of word 2, used as a register number.
  223.       Also used for dynamic fmovem instruction.
  224.    C  floating point coprocessor constant - 7 bits.  Also used for static
  225.       K-factors...
  226.    j  Movec register #, stored in 12 low bits of second word.
  227.  
  228.  Places to put operand, for general operands:
  229.    d  destination, shifted 6 bits in first word
  230.    b  source, at low bit of first word, and immediate uses one byte
  231.    w  source, at low bit of first word, and immediate uses two bytes
  232.    l  source, at low bit of first word, and immediate uses four bytes
  233.    s  source, at low bit of first word.
  234.       Used sometimes in contexts where immediate is not allowed anyway.
  235.    f  single precision float, low bit of 1st word, immediate uses 4 bytes
  236.    F  double precision float, low bit of 1st word, immediate uses 8 bytes
  237.    x  extended precision float, low bit of 1st word, immediate uses 12 bytes
  238.    p  packed float, low bit of 1st word, immediate uses 12 bytes
  239. */
  240.  
  241. #define one(x) ((unsigned int) (x) << 16)
  242. #define two(x, y) (((unsigned int) (x) << 16) + y)
  243.  
  244. /*
  245.     *** DANGER WILL ROBINSON ***
  246.  
  247.    The assembler requires that all instances of the same mnemonic must be
  248.    consecutive.  If they aren't, the assembler will bomb at runtime
  249.  */
  250. struct m68k_opcode m68k_opcodes[] =
  251. {
  252. {"abcd",    one(0140400),        one(0170770), "DsDd", m68000up },
  253. {"abcd",    one(0140410),        one(0170770), "-s-d", m68000up },
  254.  
  255.         /* Add instructions */
  256. {"addal",    one(0150700),        one(0170700), "*lAd", m68000up },
  257. {"addaw",    one(0150300),        one(0170700), "*wAd", m68000up },
  258. {"addib",    one(0003000),        one(0177700), "#b$b", m68000up },
  259. {"addil",    one(0003200),        one(0177700), "#l$l", m68000up },
  260. {"addiw",    one(0003100),        one(0177700), "#w$w", m68000up },
  261. {"addqb",    one(0050000),        one(0170700), "Qd$b", m68000up },
  262. {"addql",    one(0050200),        one(0170700), "Qd%l", m68000up },
  263. {"addqw",    one(0050100),        one(0170700), "Qd%w", m68000up },
  264.  
  265. {"addb",    one(0050000),        one(0170700), "Qd$b", m68000up },    /* addq written as add */
  266. {"addb",    one(0003000),        one(0177700), "#b$b", m68000up },    /* addi written as add */
  267. {"addb",    one(0150000),        one(0170700), ";bDd", m68000up },    /* addb <ea>,    Dd */
  268. {"addb",    one(0150400),        one(0170700), "Dd~b", m68000up },    /* addb Dd,    <ea> */
  269.  
  270. {"addw",    one(0050100),        one(0170700), "Qd%w", m68000up },    /* addq written as add */
  271. {"addw",    one(0003100),        one(0177700), "#w$w", m68000up },    /* addi written as add */
  272. {"addw",    one(0150300),        one(0170700), "*wAd", m68000up },    /* adda written as add */
  273. {"addw",    one(0150100),        one(0170700), "*wDd", m68000up },    /* addw <ea>,    Dd */
  274. {"addw",    one(0150500),        one(0170700), "Dd~w", m68000up },    /* addw Dd,    <ea> */
  275.  
  276. {"addl",    one(0050200),        one(0170700), "Qd%l", m68000up },    /* addq written as add */
  277. {"addl",    one(0003200),        one(0177700), "#l$l", m68000up },    /* addi written as add */
  278. {"addl",    one(0150700),        one(0170700), "*lAd", m68000up },    /* adda written as add */
  279. {"addl",    one(0150200),        one(0170700), "*lDd", m68000up },    /* addl <ea>,    Dd */
  280. {"addl",    one(0150600),        one(0170700), "Dd~l", m68000up },    /* addl Dd,    <ea> */
  281.  
  282. {"addxb",    one(0150400),        one(0170770), "DsDd", m68000up },
  283. {"addxb",    one(0150410),        one(0170770), "-s-d", m68000up },
  284. {"addxl",    one(0150600),        one(0170770), "DsDd", m68000up },
  285. {"addxl",    one(0150610),        one(0170770), "-s-d", m68000up },
  286. {"addxw",    one(0150500),        one(0170770), "DsDd", m68000up },
  287. {"addxw",    one(0150510),        one(0170770), "-s-d", m68000up },
  288.  
  289. {"andib",    one(0001000),        one(0177700), "#b$b", m68000up },
  290. {"andib",    one(0001074),        one(0177777), "#bCb", m68000up },    /* andi to ccr */
  291. {"andiw",    one(0001100),        one(0177700), "#w$w", m68000up },
  292. {"andiw",    one(0001174),        one(0177777), "#wSw", m68000up },    /* andi to sr */
  293. {"andil",    one(0001200),        one(0177700), "#l$l", m68000up },
  294.  
  295. {"andb",    one(0001000),        one(0177700), "#b$b", m68000up },    /* andi written as or */
  296. {"andb",    one(0001074),        one(0177777), "#bCb", m68000up },    /* andi to ccr */
  297. {"andb",    one(0140000),        one(0170700), ";bDd", m68000up },    /* memory to register */
  298. {"andb",    one(0140400),        one(0170700), "Dd~b", m68000up },    /* register to memory */
  299. {"andw",    one(0001100),        one(0177700), "#w$w", m68000up },    /* andi written as or */
  300. {"andw",    one(0001174),        one(0177777), "#wSw", m68000up },    /* andi to sr */
  301. {"andw",    one(0140100),        one(0170700), ";wDd", m68000up },    /* memory to register */
  302. {"andw",    one(0140500),        one(0170700), "Dd~w", m68000up },    /* register to memory */
  303. {"andl",    one(0001200),        one(0177700), "#l$l", m68000up },    /* andi written as or */
  304. {"andl",    one(0140200),        one(0170700), ";lDd", m68000up },    /* memory to register */
  305. {"andl",    one(0140600),        one(0170700), "Dd~l", m68000up },    /* register to memory */
  306.  
  307. {"aslb",    one(0160400),        one(0170770), "QdDs", m68000up },
  308. {"aslb",    one(0160440),        one(0170770), "DdDs", m68000up },
  309. {"asll",    one(0160600),        one(0170770), "QdDs", m68000up },
  310. {"asll",    one(0160640),        one(0170770), "DdDs", m68000up },
  311. {"aslw",    one(0160500),        one(0170770), "QdDs", m68000up },
  312. {"aslw",    one(0160540),        one(0170770), "DdDs", m68000up },
  313. {"aslw",    one(0160700),        one(0177700), "~s",   m68000up },    /* Shift memory */
  314. {"asrb",    one(0160000),        one(0170770), "QdDs", m68000up },
  315. {"asrb",    one(0160040),        one(0170770), "DdDs", m68000up },
  316. {"asrl",    one(0160200),        one(0170770), "QdDs", m68000up },
  317. {"asrl",    one(0160240),        one(0170770), "DdDs", m68000up },
  318. {"asrw",    one(0160100),        one(0170770), "QdDs", m68000up },
  319. {"asrw",    one(0160140),        one(0170770), "DdDs", m68000up },
  320. {"asrw",    one(0160300),        one(0177700), "~s",   m68000up },    /* Shift memory */
  321.  
  322. /* Fixed-size branches with 16-bit offsets */
  323.  
  324. {"bhi",        one(0061000),        one(0177777), "BW", m68000up },
  325. {"bls",        one(0061400),        one(0177777), "BW", m68000up },
  326. {"bcc",        one(0062000),        one(0177777), "BW", m68000up },
  327. {"jfnlt",    one(0062000),        one(0177777), "BW", m68000up }, /* apparently a sun alias */
  328. {"bcs",        one(0062400),        one(0177777), "BW", m68000up },
  329. {"bne",        one(0063000),        one(0177777), "BW", m68000up },
  330. {"beq",        one(0063400),        one(0177777), "BW", m68000up },
  331. {"bvc",        one(0064000),        one(0177777), "BW", m68000up },
  332. {"bvs",        one(0064400),        one(0177777), "BW", m68000up },
  333. {"bpl",        one(0065000),        one(0177777), "BW", m68000up },
  334. {"bmi",        one(0065400),        one(0177777), "BW", m68000up },
  335. {"bge",        one(0066000),        one(0177777), "BW", m68000up },
  336. {"blt",        one(0066400),        one(0177777), "BW", m68000up },
  337. {"bgt",        one(0067000),        one(0177777), "BW", m68000up },
  338. {"ble",        one(0067400),        one(0177777), "BW", m68000up },
  339. {"jfngt",    one(0067400),        one(0177777), "BW", m68000up }, /* apparently a sun alias */
  340. {"bra",        one(0060000),        one(0177777), "BW", m68000up },
  341. {"bsr",        one(0060400),        one(0177777), "BW", m68000up },
  342.  
  343. /* Fixed-size branches with short (byte) offsets */
  344.  
  345. {"bhis",    one(0061000),        one(0177400), "BB", m68000up },
  346. {"blss",    one(0061400),        one(0177400), "BB", m68000up },
  347. {"bccs",    one(0062000),        one(0177400), "BB", m68000up },
  348. {"bcss",    one(0062400),        one(0177400), "BB", m68000up },
  349. {"bnes",    one(0063000),        one(0177400), "BB", m68000up },
  350. {"beqs",    one(0063400),        one(0177400), "BB", m68000up },
  351. {"jfeq",    one(0063400),        one(0177400), "BB", m68000up }, /* apparently a sun alias */
  352. {"bvcs",    one(0064000),        one(0177400), "BB", m68000up },
  353. {"bvss",    one(0064400),        one(0177400), "BB", m68000up },
  354. {"bpls",    one(0065000),        one(0177400), "BB", m68000up },
  355. {"bmis",    one(0065400),        one(0177400), "BB", m68000up },
  356. {"bges",    one(0066000),        one(0177400), "BB", m68000up },
  357. {"blts",    one(0066400),        one(0177400), "BB", m68000up },
  358. {"bgts",    one(0067000),        one(0177400), "BB", m68000up },
  359. {"bles",    one(0067400),        one(0177400), "BB", m68000up },
  360. {"bras",    one(0060000),        one(0177400), "BB", m68000up },
  361. {"bsrs",    one(0060400),        one(0177400), "BB", m68000up },
  362.  
  363. /* Fixed-size branches with long (32-bit) offsets */
  364.  
  365. {"bhil",    one(0061377),        one(0177777), "BL", m68020up },
  366. {"blsl",    one(0061777),        one(0177777), "BL", m68020up },
  367. {"bccl",    one(0062377),        one(0177777), "BL", m68020up },
  368. {"bcsl",    one(0062777),        one(0177777), "BL", m68020up },
  369. {"bnel",    one(0063377),        one(0177777), "BL", m68020up },
  370. {"beql",    one(0063777),        one(0177777), "BL", m68020up },
  371. {"bvcl",    one(0064377),        one(0177777), "BL", m68020up },
  372. {"bvsl",    one(0064777),        one(0177777), "BL", m68020up },
  373. {"bpll",    one(0065377),        one(0177777), "BL", m68020up },
  374. {"bmil",    one(0065777),        one(0177777), "BL", m68020up },
  375. {"bgel",    one(0066377),        one(0177777), "BL", m68020up },
  376. {"bltl",    one(0066777),        one(0177777), "BL", m68020up },
  377. {"bgtl",    one(0067377),        one(0177777), "BL", m68020up },
  378. {"blel",    one(0067777),        one(0177777), "BL", m68020up },
  379. {"bral",    one(0060377),        one(0177777), "BL", m68020up },
  380. {"bsrl",    one(0060777),        one(0177777), "BL", m68020up },
  381.  
  382. /* We now return you to our regularly scheduled instruction set */
  383.  
  384. {"bchg",    one(0000500),        one(0170700),        "Dd$s", m68000up },
  385. {"bchg",    one(0004100),        one(0177700),        "#b$s", m68000up },
  386. {"bclr",    one(0000600),        one(0170700),        "Dd$s", m68000up },
  387. {"bclr",    one(0004200),        one(0177700),        "#b$s", m68000up },
  388.  
  389. {"bfchg",    two(0165300, 0),    two(0177700, 0170000),    "?sO2O3",   m68020up },
  390. {"bfclr",    two(0166300, 0),    two(0177700, 0170000),    "?sO2O3",   m68020up },
  391. {"bfexts",    two(0165700, 0),    two(0177700, 0100000),    "/sO2O3D1", m68020up },
  392. {"bfextu",    two(0164700, 0),    two(0177700, 0100000),    "/sO2O3D1", m68020up },
  393. {"bfffo",    two(0166700, 0),    two(0177700, 0100000),    "/sO2O3D1", m68020up },
  394. {"bfins",    two(0167700, 0),    two(0177700, 0100000),    "D1?sO2O3", m68020up },
  395. {"bfset",    two(0167300, 0),    two(0177700, 0170000),    "?sO2O3",   m68020up },
  396. {"bftst",    two(0164300, 0),    two(0177700, 0170000),    "/sO2O3",   m68020up },
  397. {"bkpt",    one(0044110),        one(0177770),        "Qs",       m68020up },
  398.  
  399. {"bset",    one(0000700),        one(0170700),        "Dd$s", m68000up },
  400. {"bset",    one(0004300),        one(0177700),        "#b$s", m68000up },
  401. {"btst",    one(0000400),        one(0170700),        "Dd@s", m68000up },
  402. {"btst",    one(0004000),        one(0177700),        "#b@s", m68000up },
  403.  
  404.  
  405. {"callm",    one(0003300),        one(0177700),        "#b!s", m68020 },
  406.  
  407. {"cas2l",    two(0007374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4", m68020up }, /* JF FOO really a 3 word ins */
  408. {"cas2w",    two(0006374, 0),    two(0177777, 0107070),    "D3D6D2D5R1R4", m68020up }, /* JF ditto */
  409. {"casb",    two(0005300, 0),    two(0177700, 0177070),    "D3D2~s", m68020up },
  410. {"casl",    two(0007300, 0),    two(0177700, 0177070),    "D3D2~s", m68020up },
  411. {"casw",    two(0006300, 0),    two(0177700, 0177070),    "D3D2~s", m68020up },
  412.  
  413. /*  {"chk",    one(0040600),        one(0170700),        ";wDd"}, JF FOO this looks wrong */
  414. {"chk2b",    two(0000300, 0004000),    two(0177700, 07777),    "!sR1", m68020up },
  415. {"chk2l",    two(0002300, 0004000),    two(0177700, 07777),    "!sR1", m68020up },
  416. {"chk2w",    two(0001300, 0004000),    two(0177700, 07777),    "!sR1", m68020up },
  417. {"chkl",    one(0040400),        one(0170700),        ";lDd", m68000up },
  418. {"chkw",    one(0040600),        one(0170700),        ";wDd", m68000up },
  419.  
  420. #define SCOPE_LINE (0x1 << 3)
  421. #define SCOPE_PAGE (0x2 << 3)
  422. #define SCOPE_ALL  (0x3 << 3)
  423.  
  424. {"cinva",    one(0xf400|SCOPE_ALL),  one(0xff20), "ce",   m68040 },
  425. {"cinvl",    one(0xf400|SCOPE_LINE), one(0xff20), "ceas", m68040 },
  426. {"cinvp",    one(0xf400|SCOPE_PAGE), one(0xff20), "ceas", m68040 },
  427.  
  428. {"cpusha",    one(0xf420|SCOPE_ALL),  one(0xff20), "ce",   m68040 },
  429. {"cpushl",    one(0xf420|SCOPE_LINE), one(0xff20), "ceas", m68040 },
  430. {"cpushp",    one(0xf420|SCOPE_PAGE), one(0xff20), "ceas", m68040 },
  431.  
  432. #undef SCOPE_LINE
  433. #undef SCOPE_PAGE
  434. #undef SCOPE_ALL
  435.  
  436. {"clrb",    one(0041000),        one(0177700),        "$s", m68000up },
  437. {"clrl",    one(0041200),        one(0177700),        "$s", m68000up },
  438. {"clrw",    one(0041100),        one(0177700),        "$s", m68000up },
  439.  
  440. {"cmp2b",    two(0000300, 0),    two(0177700, 07777),    "!sR1", m68020up },
  441. {"cmp2l",    two(0002300, 0),    two(0177700, 07777),    "!sR1", m68020up },
  442. {"cmp2w",    two(0001300, 0),    two(0177700, 07777),    "!sR1", m68020up },
  443. {"cmpal",    one(0130700),        one(0170700),        "*lAd", m68000up },
  444. {"cmpaw",    one(0130300),        one(0170700),        "*wAd", m68000up },
  445. {"cmpib",    one(0006000),        one(0177700),        "#b;b", m68000up },
  446. {"cmpil",    one(0006200),        one(0177700),        "#l;l", m68000up },
  447. {"cmpiw",    one(0006100),        one(0177700),        "#w;w", m68000up },
  448. {"cmpb",    one(0006000),        one(0177700),        "#b;b", m68000up },    /* cmpi written as cmp */
  449. {"cmpb",    one(0130000),        one(0170700),        ";bDd", m68000up },
  450. {"cmpw",    one(0006100),        one(0177700),        "#w;w", m68000up },
  451. {"cmpw",    one(0130100),        one(0170700),        "*wDd", m68000up },
  452. {"cmpw",    one(0130300),        one(0170700),        "*wAd", m68000up },    /* cmpa written as cmp */
  453. {"cmpl",    one(0006200),        one(0177700),        "#l;l", m68000up },
  454. {"cmpl",    one(0130200),        one(0170700),        "*lDd", m68000up },
  455. {"cmpl",    one(0130700),        one(0170700),        "*lAd", m68000up },
  456. {"cmpmb",    one(0130410),        one(0170770),        "+s+d", m68000up },
  457. {"cmpml",    one(0130610),        one(0170770),        "+s+d", m68000up },
  458. {"cmpmw",    one(0130510),        one(0170770),        "+s+d", m68000up },
  459.  
  460. {"dbcc",    one(0052310),        one(0177770),        "DsBw", m68000up },
  461. {"dbcs",    one(0052710),        one(0177770),        "DsBw", m68000up },
  462. {"dbeq",    one(0053710),        one(0177770),        "DsBw", m68000up },
  463. {"dbf",        one(0050710),        one(0177770),        "DsBw", m68000up },
  464. {"dbge",    one(0056310),        one(0177770),        "DsBw", m68000up },
  465. {"dbgt",    one(0057310),        one(0177770),        "DsBw", m68000up },
  466. {"dbhi",    one(0051310),        one(0177770),        "DsBw", m68000up },
  467. {"dble",    one(0057710),        one(0177770),        "DsBw", m68000up },
  468. {"dbls",    one(0051710),        one(0177770),        "DsBw", m68000up },
  469. {"dblt",    one(0056710),        one(0177770),        "DsBw", m68000up },
  470. {"dbmi",    one(0055710),        one(0177770),        "DsBw", m68000up },
  471. {"dbne",    one(0053310),        one(0177770),        "DsBw", m68000up },
  472. {"dbpl",    one(0055310),        one(0177770),        "DsBw", m68000up },
  473. {"dbra",    one(0050710),        one(0177770),        "DsBw", m68000up },
  474. {"dbt",        one(0050310),        one(0177770),        "DsBw", m68000up },
  475. {"dbvc",    one(0054310),        one(0177770),        "DsBw", m68000up },
  476. {"dbvs",    one(0054710),        one(0177770),        "DsBw", m68000up },
  477.  
  478. {"divsl",    two(0046100, 0006000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  479. {"divsl",    two(0046100, 0004000),    two(0177700, 0107770),    ";lDD", m68020up },
  480. {"divsll",    two(0046100, 0004000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  481. {"divsw",    one(0100700),        one(0170700),        ";wDd", m68000up },
  482. {"divs",    one(0100700),        one(0170700),        ";wDd", m68000up },
  483. {"divul",    two(0046100, 0002000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  484. {"divul",    two(0046100, 0000000),    two(0177700, 0107770),    ";lDD", m68020up },
  485. {"divull",    two(0046100, 0000000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  486. {"divuw",    one(0100300),        one(0170700),        ";wDd", m68000up },
  487. {"divu",    one(0100300),        one(0170700),        ";wDd", m68000up },
  488. {"eorb",    one(0005000),        one(0177700),        "#b$s", m68000up },    /* eori written as or */
  489. {"eorb",    one(0005074),        one(0177777),        "#bCs", m68000up },    /* eori to ccr */
  490. {"eorb",    one(0130400),        one(0170700),        "Dd$s", m68000up },    /* register to memory */
  491. {"eorib",    one(0005000),        one(0177700),        "#b$s", m68000up },
  492. {"eorib",    one(0005074),        one(0177777),        "#bCs", m68000up },    /* eori to ccr */
  493. {"eoril",    one(0005200),        one(0177700),        "#l$s", m68000up },
  494. {"eoriw",    one(0005100),        one(0177700),        "#w$s", m68000up },
  495. {"eoriw",    one(0005174),        one(0177777),        "#wSs", m68000up },    /* eori to sr */
  496. {"eorl",    one(0005200),        one(0177700),        "#l$s", m68000up },
  497. {"eorl",    one(0130600),        one(0170700),        "Dd$s", m68000up },
  498. {"eorw",    one(0005100),        one(0177700),        "#w$s", m68000up },
  499. {"eorw",    one(0005174),        one(0177777),        "#wSs", m68000up },    /* eori to sr */
  500. {"eorw",    one(0130500),        one(0170700),        "Dd$s", m68000up },
  501.  
  502. {"exg",        one(0140500),        one(0170770),        "DdDs", m68000up },
  503. {"exg",        one(0140510),        one(0170770),        "AdAs", m68000up },
  504. {"exg",        one(0140610),        one(0170770),        "DdAs", m68000up },
  505. {"exg",        one(0140610),        one(0170770),        "AsDd", m68000up },
  506.  
  507. {"extw",    one(0044200),        one(0177770),        "Ds", m68000up },
  508. {"extl",    one(0044300),        one(0177770),        "Ds", m68000up },
  509. {"extbl",    one(0044700),        one(0177770),        "Ds", m68020up },
  510. {"extb.l",    one(0044700),        one(0177770),        "Ds", m68020up }, /* Not sure we should support this one */
  511.  
  512. /* float stuff starts here */
  513. {"fabsb",    two(0xF000, 0x5818),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  514. {"fabsd",    two(0xF000, 0x5418),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  515. {"fabsl",    two(0xF000, 0x4018),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  516. {"fabsp",    two(0xF000, 0x4C18),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  517. {"fabss",    two(0xF000, 0x4418),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  518. {"fabsw",    two(0xF000, 0x5018),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  519. {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  520. {"fabsx",    two(0xF000, 0x4818),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  521. {"fabsx",    two(0xF000, 0x0018),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  522.  
  523. /* FIXME-NOW: The '040 book that I have claims that these should be
  524.    coded exactly like fadd.  In fact, the table of opmodes calls them
  525.    fadd, fsadd, fdadd.  That can't be right.  If someone can give me the
  526.    right encoding, I'll fix it.  By induction, I *think* the right
  527.    encoding is 38 & 3c, but I'm not sure.
  528.  
  529.    in the mean time, if you know the encoding for the opmode field, you
  530.    can replace all of the "38),"'s and "3c),"'s below with the corrected
  531.    values and these guys should then just work.  xoxorich. 31Aug91 */
  532.  
  533. #ifdef comment
  534. {"fsabsb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  535. {"fsabsd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  536. {"fsabsl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  537. {"fsabsp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  538. {"fsabss",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  539. {"fsabsw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  540. {"fsabsx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  541. {"fsabsx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  542. {"fsabsx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  543.  
  544. {"fdabsb",    two(0xF000, 0x583c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040},
  545. {"fdabsd",    two(0xF000, 0x543c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040},
  546. {"fdabsl",    two(0xF000, 0x403c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040},
  547. {"fdabsp",    two(0xF000, 0x4C3c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040},
  548. {"fdabss",    two(0xF000, 0x443c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040},
  549. {"fdabsw",    two(0xF000, 0x503c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040},
  550. {"fdabsx",    two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040},
  551. {"fdabsx",    two(0xF000, 0x483c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040},
  552. {"fdabsx",    two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040},
  553. #endif /* comment */
  554.  
  555. {"facosb",    two(0xF000, 0x581C),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  556. {"facosd",    two(0xF000, 0x541C),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  557. {"facosl",    two(0xF000, 0x401C),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  558. {"facosp",    two(0xF000, 0x4C1C),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  559. {"facoss",    two(0xF000, 0x441C),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  560. {"facosw",    two(0xF000, 0x501C),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  561. {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  562. {"facosx",    two(0xF000, 0x481C),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  563. {"facosx",    two(0xF000, 0x001C),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  564.  
  565. {"faddb",    two(0xF000, 0x5822),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  566. {"faddd",    two(0xF000, 0x5422),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  567. {"faddl",    two(0xF000, 0x4022),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  568. {"faddp",    two(0xF000, 0x4C22),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  569. {"fadds",    two(0xF000, 0x4422),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  570. {"faddw",    two(0xF000, 0x5022),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  571. {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  572. {"faddx",    two(0xF000, 0x4822),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  573. /* {"faddx",    two(0xF000, 0x0022),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF removed */
  574.  
  575. {"fsaddb",    two(0xF000, 0x5832),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  576. {"fsaddd",    two(0xF000, 0x5432),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  577. {"fsaddl",    two(0xF000, 0x4032),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  578. {"fsaddp",    two(0xF000, 0x4C32),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  579. {"fsadds",    two(0xF000, 0x4432),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  580. {"fsaddw",    two(0xF000, 0x5032),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  581. {"fsaddx",    two(0xF000, 0x0032),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  582. {"fsaddx",    two(0xF000, 0x4832),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  583. /* {"fsaddx",    two(0xF000, 0x0032),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
  584.  
  585. {"fdaddb",    two(0xF000, 0x5836),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  586. {"fdaddd",    two(0xF000, 0x5436),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  587. {"fdaddl",    two(0xF000, 0x4036),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  588. {"fdaddp",    two(0xF000, 0x4C36),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  589. {"fdadds",    two(0xF000, 0x4436),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  590. {"fdaddw",    two(0xF000, 0x5036),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  591. {"fdaddx",    two(0xF000, 0x0036),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  592. {"fdaddx",    two(0xF000, 0x4836),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  593. /* {"faddx",    two(0xF000, 0x0036),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, JF removed */
  594.  
  595. {"fasinb",    two(0xF000, 0x580C),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  596. {"fasind",    two(0xF000, 0x540C),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  597. {"fasinl",    two(0xF000, 0x400C),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  598. {"fasinp",    two(0xF000, 0x4C0C),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  599. {"fasins",    two(0xF000, 0x440C),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  600. {"fasinw",    two(0xF000, 0x500C),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  601. {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  602. {"fasinx",    two(0xF000, 0x480C),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  603. {"fasinx",    two(0xF000, 0x000C),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  604.  
  605. {"fatanb",    two(0xF000, 0x580A),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  606. {"fatand",    two(0xF000, 0x540A),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  607. {"fatanl",    two(0xF000, 0x400A),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  608. {"fatanp",    two(0xF000, 0x4C0A),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  609. {"fatans",    two(0xF000, 0x440A),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  610. {"fatanw",    two(0xF000, 0x500A),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  611. {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  612. {"fatanx",    two(0xF000, 0x480A),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  613. {"fatanx",    two(0xF000, 0x000A),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  614.  
  615. {"fatanhb",    two(0xF000, 0x580D),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  616. {"fatanhd",    two(0xF000, 0x540D),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  617. {"fatanhl",    two(0xF000, 0x400D),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  618. {"fatanhp",    two(0xF000, 0x4C0D),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  619. {"fatanhs",    two(0xF000, 0x440D),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  620. {"fatanhw",    two(0xF000, 0x500D),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  621. {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  622. {"fatanhx",    two(0xF000, 0x480D),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  623. {"fatanhx",    two(0xF000, 0x000D),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  624.  
  625. /* Fixed-size Float branches */
  626.  
  627. {"fbeq",    one(0xF081),        one(0xF1BF),        "IdBW", mfloat },
  628. {"fbf",        one(0xF080),        one(0xF1BF),        "IdBW", mfloat },
  629. {"fbge",    one(0xF093),        one(0xF1BF),        "IdBW", mfloat },
  630. {"fbgl",    one(0xF096),        one(0xF1BF),        "IdBW", mfloat },
  631. {"fbgle",    one(0xF097),        one(0xF1BF),        "IdBW", mfloat },
  632. {"fbgt",    one(0xF092),        one(0xF1BF),        "IdBW", mfloat },
  633. {"fble",    one(0xF095),        one(0xF1BF),        "IdBW", mfloat },
  634. {"fblt",    one(0xF094),        one(0xF1BF),        "IdBW", mfloat },
  635. {"fbne",    one(0xF08E),        one(0xF1BF),        "IdBW", mfloat },
  636. {"fbnge",    one(0xF09C),        one(0xF1BF),        "IdBW", mfloat },
  637. {"fbngl",    one(0xF099),        one(0xF1BF),        "IdBW", mfloat },
  638. {"fbngle",    one(0xF098),        one(0xF1BF),        "IdBW", mfloat },
  639. {"fbngt",    one(0xF09D),        one(0xF1BF),        "IdBW", mfloat },
  640. {"fbnle",    one(0xF09A),        one(0xF1BF),        "IdBW", mfloat },
  641. {"fbnlt",    one(0xF09B),        one(0xF1BF),        "IdBW", mfloat },
  642. {"fboge",    one(0xF083),        one(0xF1BF),        "IdBW", mfloat },
  643. {"fbogl",    one(0xF086),        one(0xF1BF),        "IdBW", mfloat },
  644. {"fbogt",    one(0xF082),        one(0xF1BF),        "IdBW", mfloat },
  645. {"fbole",    one(0xF085),        one(0xF1BF),        "IdBW", mfloat },
  646. {"fbolt",    one(0xF084),        one(0xF1BF),        "IdBW", mfloat },
  647. {"fbor",    one(0xF087),        one(0xF1BF),        "IdBW", mfloat },
  648. {"fbseq",    one(0xF091),        one(0xF1BF),        "IdBW", mfloat },
  649. {"fbsf",    one(0xF090),        one(0xF1BF),        "IdBW", mfloat },
  650. {"fbsne",    one(0xF09E),        one(0xF1BF),        "IdBW", mfloat },
  651. {"fbst",    one(0xF09F),        one(0xF1BF),        "IdBW", mfloat },
  652. {"fbt",        one(0xF08F),        one(0xF1BF),        "IdBW", mfloat },
  653. {"fbueq",    one(0xF089),        one(0xF1BF),        "IdBW", mfloat },
  654. {"fbuge",    one(0xF08B),        one(0xF1BF),        "IdBW", mfloat },
  655. {"fbugt",    one(0xF08A),        one(0xF1BF),        "IdBW", mfloat },
  656. {"fbule",    one(0xF08D),        one(0xF1BF),        "IdBW", mfloat },
  657. {"fbult",    one(0xF08C),        one(0xF1BF),        "IdBW", mfloat },
  658. {"fbun",    one(0xF088),        one(0xF1BF),        "IdBW", mfloat },
  659.  
  660. /* Float branches -- long (32-bit) displacements */
  661.  
  662. {"fbeql",    one(0xF081),        one(0xF1BF),        "IdBC", mfloat },
  663. {"fbfl",    one(0xF080),        one(0xF1BF),        "IdBC", mfloat },
  664. {"fbgel",    one(0xF093),        one(0xF1BF),        "IdBC", mfloat },
  665. {"fbgll",    one(0xF096),        one(0xF1BF),        "IdBC", mfloat },
  666. {"fbglel",    one(0xF097),        one(0xF1BF),        "IdBC", mfloat },
  667. {"fbgtl",    one(0xF092),        one(0xF1BF),        "IdBC", mfloat },
  668. {"fblel",    one(0xF095),        one(0xF1BF),        "IdBC", mfloat },
  669. {"fbltl",    one(0xF094),        one(0xF1BF),        "IdBC", mfloat },
  670. {"fbnel",    one(0xF08E),        one(0xF1BF),        "IdBC", mfloat },
  671. {"fbngel",    one(0xF09C),        one(0xF1BF),        "IdBC", mfloat },
  672. {"fbngll",    one(0xF099),        one(0xF1BF),        "IdBC", mfloat },
  673. {"fbnglel",    one(0xF098),        one(0xF1BF),        "IdBC", mfloat },
  674. {"fbngtl",    one(0xF09D),        one(0xF1BF),        "IdBC", mfloat },
  675. {"fbnlel",    one(0xF09A),        one(0xF1BF),        "IdBC", mfloat },
  676. {"fbnltl",    one(0xF09B),        one(0xF1BF),        "IdBC", mfloat },
  677. {"fbogel",    one(0xF083),        one(0xF1BF),        "IdBC", mfloat },
  678. {"fbogll",    one(0xF086),        one(0xF1BF),        "IdBC", mfloat },
  679. {"fbogtl",    one(0xF082),        one(0xF1BF),        "IdBC", mfloat },
  680. {"fbolel",    one(0xF085),        one(0xF1BF),        "IdBC", mfloat },
  681. {"fboltl",    one(0xF084),        one(0xF1BF),        "IdBC", mfloat },
  682. {"fborl",    one(0xF087),        one(0xF1BF),        "IdBC", mfloat },
  683. {"fbseql",    one(0xF091),        one(0xF1BF),        "IdBC", mfloat },
  684. {"fbsfl",    one(0xF090),        one(0xF1BF),        "IdBC", mfloat },
  685. {"fbsnel",    one(0xF09E),        one(0xF1BF),        "IdBC", mfloat },
  686. {"fbstl",    one(0xF09F),        one(0xF1BF),        "IdBC", mfloat },
  687. {"fbtl",    one(0xF08F),        one(0xF1BF),        "IdBC", mfloat },
  688. {"fbueql",    one(0xF089),        one(0xF1BF),        "IdBC", mfloat },
  689. {"fbugel",    one(0xF08B),        one(0xF1BF),        "IdBC", mfloat },
  690. {"fbugtl",    one(0xF08A),        one(0xF1BF),        "IdBC", mfloat },
  691. {"fbulel",    one(0xF08D),        one(0xF1BF),        "IdBC", mfloat },
  692. {"fbultl",    one(0xF08C),        one(0xF1BF),        "IdBC", mfloat },
  693. {"fbunl",    one(0xF088),        one(0xF1BF),        "IdBC", mfloat },
  694.  
  695. {"fcmpb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  696. {"fcmpd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  697. {"fcmpl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  698. {"fcmpp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  699. {"fcmps",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  700. {"fcmpw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  701. {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  702. {"fcmpx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  703. /* {"fcmpx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF removed */
  704.  
  705. {"fcosb",    two(0xF000, 0x581D),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  706. {"fcosd",    two(0xF000, 0x541D),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  707. {"fcosl",    two(0xF000, 0x401D),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  708. {"fcosp",    two(0xF000, 0x4C1D),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  709. {"fcoss",    two(0xF000, 0x441D),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  710. {"fcosw",    two(0xF000, 0x501D),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  711. {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  712. {"fcosx",    two(0xF000, 0x481D),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  713. {"fcosx",    two(0xF000, 0x001D),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  714.  
  715. {"fcoshb",    two(0xF000, 0x5819),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  716. {"fcoshd",    two(0xF000, 0x5419),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  717. {"fcoshl",    two(0xF000, 0x4019),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  718. {"fcoshp",    two(0xF000, 0x4C19),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  719. {"fcoshs",    two(0xF000, 0x4419),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  720. {"fcoshw",    two(0xF000, 0x5019),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  721. {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  722. {"fcoshx",    two(0xF000, 0x4819),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  723. {"fcoshx",    two(0xF000, 0x0019),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  724.  
  725. {"fdbeq",    two(0xF048, 0x0001),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  726. {"fdbf",    two(0xF048, 0x0000),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  727. {"fdbge",    two(0xF048, 0x0013),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  728. {"fdbgl",    two(0xF048, 0x0016),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  729. {"fdbgle",    two(0xF048, 0x0017),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  730. {"fdbgt",    two(0xF048, 0x0012),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  731. {"fdble",    two(0xF048, 0x0015),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  732. {"fdblt",    two(0xF048, 0x0014),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  733. {"fdbne",    two(0xF048, 0x000E),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  734. {"fdbnge",    two(0xF048, 0x001C),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  735. {"fdbngl",    two(0xF048, 0x0019),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  736. {"fdbngle",    two(0xF048, 0x0018),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  737. {"fdbngt",    two(0xF048, 0x001D),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  738. {"fdbnle",    two(0xF048, 0x001A),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  739. {"fdbnlt",    two(0xF048, 0x001B),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  740. {"fdboge",    two(0xF048, 0x0003),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  741. {"fdbogl",    two(0xF048, 0x0006),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  742. {"fdbogt",    two(0xF048, 0x0002),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  743. {"fdbole",    two(0xF048, 0x0005),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  744. {"fdbolt",    two(0xF048, 0x0004),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  745. {"fdbor",    two(0xF048, 0x0007),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  746. {"fdbseq",    two(0xF048, 0x0011),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  747. {"fdbsf",    two(0xF048, 0x0010),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  748. {"fdbsne",    two(0xF048, 0x001E),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  749. {"fdbst",    two(0xF048, 0x001F),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  750. {"fdbt",    two(0xF048, 0x000F),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  751. {"fdbueq",    two(0xF048, 0x0009),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  752. {"fdbuge",    two(0xF048, 0x000B),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  753. {"fdbugt",    two(0xF048, 0x000A),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  754. {"fdbule",    two(0xF048, 0x000D),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  755. {"fdbult",    two(0xF048, 0x000C),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  756. {"fdbun",    two(0xF048, 0x0008),    two(0xF1F8, 0xFFFF),    "IiDsBw", mfloat },
  757.  
  758. {"fdivb",    two(0xF000, 0x5820),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  759. {"fdivd",    two(0xF000, 0x5420),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  760. {"fdivl",    two(0xF000, 0x4020),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  761. {"fdivp",    two(0xF000, 0x4C20),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  762. {"fdivs",    two(0xF000, 0x4420),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  763. {"fdivw",    two(0xF000, 0x5020),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  764. {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  765. {"fdivx",    two(0xF000, 0x4820),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  766. /* {"fdivx",    two(0xF000, 0x0020),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
  767.  
  768. {"fsdivb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  769. {"fsdivd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  770. {"fsdivl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  771. {"fsdivp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  772. {"fsdivs",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  773. {"fsdivw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  774. {"fsdivx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  775. {"fsdivx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  776. /* {"fsdivx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
  777.  
  778. {"fddivb",    two(0xF000, 0x5834),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  779. {"fddivd",    two(0xF000, 0x5434),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  780. {"fddivl",    two(0xF000, 0x4034),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  781. {"fddivp",    two(0xF000, 0x4C34),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  782. {"fddivs",    two(0xF000, 0x4434),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  783. {"fddivw",    two(0xF000, 0x5034),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  784. {"fddivx",    two(0xF000, 0x0034),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  785. {"fddivx",    two(0xF000, 0x4834),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  786. /* {"fddivx",    two(0xF000, 0x0034),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
  787.  
  788. {"fetoxb",    two(0xF000, 0x5810),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  789. {"fetoxd",    two(0xF000, 0x5410),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  790. {"fetoxl",    two(0xF000, 0x4010),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  791. {"fetoxp",    two(0xF000, 0x4C10),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  792. {"fetoxs",    two(0xF000, 0x4410),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  793. {"fetoxw",    two(0xF000, 0x5010),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  794. {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  795. {"fetoxx",    two(0xF000, 0x4810),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  796. {"fetoxx",    two(0xF000, 0x0010),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  797.  
  798. {"fetoxm1b",    two(0xF000, 0x5808),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  799. {"fetoxm1d",    two(0xF000, 0x5408),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  800. {"fetoxm1l",    two(0xF000, 0x4008),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  801. {"fetoxm1p",    two(0xF000, 0x4C08),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  802. {"fetoxm1s",    two(0xF000, 0x4408),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  803. {"fetoxm1w",    two(0xF000, 0x5008),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  804. {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  805. {"fetoxm1x",    two(0xF000, 0x4808),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  806. {"fetoxm1x",    two(0xF000, 0x0008),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  807.  
  808. {"fgetexpb",    two(0xF000, 0x581E),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  809. {"fgetexpd",    two(0xF000, 0x541E),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  810. {"fgetexpl",    two(0xF000, 0x401E),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  811. {"fgetexpp",    two(0xF000, 0x4C1E),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  812. {"fgetexps",    two(0xF000, 0x441E),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  813. {"fgetexpw",    two(0xF000, 0x501E),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  814. {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  815. {"fgetexpx",    two(0xF000, 0x481E),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  816. {"fgetexpx",    two(0xF000, 0x001E),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  817.  
  818. {"fgetmanb",    two(0xF000, 0x581F),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  819. {"fgetmand",    two(0xF000, 0x541F),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  820. {"fgetmanl",    two(0xF000, 0x401F),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  821. {"fgetmanp",    two(0xF000, 0x4C1F),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  822. {"fgetmans",    two(0xF000, 0x441F),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  823. {"fgetmanw",    two(0xF000, 0x501F),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  824. {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  825. {"fgetmanx",    two(0xF000, 0x481F),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  826. {"fgetmanx",    two(0xF000, 0x001F),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  827.  
  828. {"fintb",    two(0xF000, 0x5801),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  829. {"fintd",    two(0xF000, 0x5401),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  830. {"fintl",    two(0xF000, 0x4001),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  831. {"fintp",    two(0xF000, 0x4C01),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  832. {"fints",    two(0xF000, 0x4401),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  833. {"fintw",    two(0xF000, 0x5001),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  834. {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  835. {"fintx",    two(0xF000, 0x4801),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  836. {"fintx",    two(0xF000, 0x0001),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  837.  
  838. {"fintrzb",    two(0xF000, 0x5803),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  839. {"fintrzd",    two(0xF000, 0x5403),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  840. {"fintrzl",    two(0xF000, 0x4003),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  841. {"fintrzp",    two(0xF000, 0x4C03),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  842. {"fintrzs",    two(0xF000, 0x4403),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  843. {"fintrzw",    two(0xF000, 0x5003),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  844. {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  845. {"fintrzx",    two(0xF000, 0x4803),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  846. {"fintrzx",    two(0xF000, 0x0003),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  847.  
  848. {"flog10b",    two(0xF000, 0x5815),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  849. {"flog10d",    two(0xF000, 0x5415),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  850. {"flog10l",    two(0xF000, 0x4015),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  851. {"flog10p",    two(0xF000, 0x4C15),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  852. {"flog10s",    two(0xF000, 0x4415),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  853. {"flog10w",    two(0xF000, 0x5015),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  854. {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  855. {"flog10x",    two(0xF000, 0x4815),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  856. {"flog10x",    two(0xF000, 0x0015),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  857.  
  858. {"flog2b",    two(0xF000, 0x5816),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  859. {"flog2d",    two(0xF000, 0x5416),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  860. {"flog2l",    two(0xF000, 0x4016),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  861. {"flog2p",    two(0xF000, 0x4C16),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  862. {"flog2s",    two(0xF000, 0x4416),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  863. {"flog2w",    two(0xF000, 0x5016),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  864. {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  865. {"flog2x",    two(0xF000, 0x4816),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  866. {"flog2x",    two(0xF000, 0x0016),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  867.  
  868. {"flognb",    two(0xF000, 0x5814),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  869. {"flognd",    two(0xF000, 0x5414),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  870. {"flognl",    two(0xF000, 0x4014),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  871. {"flognp",    two(0xF000, 0x4C14),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  872. {"flogns",    two(0xF000, 0x4414),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  873. {"flognw",    two(0xF000, 0x5014),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  874. {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  875. {"flognx",    two(0xF000, 0x4814),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  876. {"flognx",    two(0xF000, 0x0014),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  877.  
  878. {"flognp1b",    two(0xF000, 0x5806),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  879. {"flognp1d",    two(0xF000, 0x5406),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  880. {"flognp1l",    two(0xF000, 0x4006),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  881. {"flognp1p",    two(0xF000, 0x4C06),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  882. {"flognp1s",    two(0xF000, 0x4406),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  883. {"flognp1w",    two(0xF000, 0x5006),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  884. {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  885. {"flognp1x",    two(0xF000, 0x4806),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  886. {"flognp1x",    two(0xF000, 0x0006),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  887.  
  888. {"fmodb",    two(0xF000, 0x5821),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  889. {"fmodd",    two(0xF000, 0x5421),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  890. {"fmodl",    two(0xF000, 0x4021),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  891. {"fmodp",    two(0xF000, 0x4C21),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  892. {"fmods",    two(0xF000, 0x4421),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  893. {"fmodw",    two(0xF000, 0x5021),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  894. {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  895. {"fmodx",    two(0xF000, 0x4821),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  896. /* {"fmodx",    two(0xF000, 0x0021),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
  897.  
  898. {"fmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },        /* fmove from <ea> to fp<n> */
  899. {"fmoveb",    two(0xF000, 0x7800),    two(0xF1C0, 0xFC7F),    "IiF7@b", mfloat },        /* fmove from fp<n> to <ea> */
  900. {"fmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },        /* fmove from <ea> to fp<n> */
  901. {"fmoved",    two(0xF000, 0x7400),    two(0xF1C0, 0xFC7F),    "IiF7@F", mfloat },        /* fmove from fp<n> to <ea> */
  902. {"fmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },        /* fmove from <ea> to fp<n> */
  903. {"fmovel",    two(0xF000, 0x6000),    two(0xF1C0, 0xFC7F),    "IiF7@l", mfloat },        /* fmove from fp<n> to <ea> */
  904. /* Warning:  The addressing modes on these are probably not right:
  905.    esp, Areg direct is only allowed for FPI */
  906.         /* fmove.l from/to system control registers: */
  907. {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s", mfloat },
  908. {"fmovel",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ls8", mfloat },
  909.  
  910. /* {"fmovel",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s", mfloat },
  911. {"fmovel",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*ss8", mfloat }, */
  912.  
  913. {"fmovep",    two(0xF000, 0x4C00),    two(0xF1C0, 0xFC7F),    "Ii;pF7",   mfloat },        /* fmove from <ea> to fp<n> */
  914. {"fmovep",    two(0xF000, 0x6C00),    two(0xF1C0, 0xFC00),    "IiF7@pkC", mfloat },        /* fmove.p with k-factors: */
  915. {"fmovep",    two(0xF000, 0x7C00),    two(0xF1C0, 0xFC0F),    "IiF7@pDk", mfloat },        /* fmove.p with k-factors: */
  916.  
  917. {"fmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },        /* fmove from <ea> to fp<n> */
  918. {"fmoves",    two(0xF000, 0x6400),    two(0xF1C0, 0xFC7F),    "IiF7@f", mfloat },        /* fmove from fp<n> to <ea> */
  919. {"fmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },        /* fmove from <ea> to fp<n> */
  920. {"fmovew",    two(0xF000, 0x7000),    two(0xF1C0, 0xFC7F),    "IiF7@w", mfloat },        /* fmove from fp<n> to <ea> */
  921. {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },        /* fmove from <ea> to fp<n> */
  922. {"fmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },        /* fmove from <ea> to fp<n> */
  923. {"fmovex",    two(0xF000, 0x6800),    two(0xF1C0, 0xFC7F),    "IiF7@x", mfloat },        /* fmove from fp<n> to <ea> */
  924. /* JF removed {"fmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", mfloat }, / * fmove from <ea> to fp<n> */
  925.  
  926. {"fsmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
  927. {"fsmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
  928. {"fsmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
  929. {"fsmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
  930. {"fsmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
  931. {"fsmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
  932. {"fsmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
  933. /* JF removed {"fsmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
  934.  
  935. {"fdmoveb",    two(0xF000, 0x5800),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 }, /* fmove from <ea> to fp<n> */
  936. {"fdmoved",    two(0xF000, 0x5400),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 }, /* fmove from <ea> to fp<n> */
  937. {"fdmovel",    two(0xF000, 0x4000),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 }, /* fmove from <ea> to fp<n> */
  938. {"fdmoves",    two(0xF000, 0x4400),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 }, /* fmove from <ea> to fp<n> */
  939. {"fdmovew",    two(0xF000, 0x5000),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 }, /* fmove from <ea> to fp<n> */
  940. {"fdmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 }, /* fmove from <ea> to fp<n> */
  941. {"fdmovex",    two(0xF000, 0x4800),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 }, /* fmove from <ea> to fp<n> */
  942. /* JF removed {"fdmovex",    two(0xF000, 0x0000),    two(0xF1C0, 0xE07F),    "IiFt", m68040 }, / * fmove from <ea> to fp<n> */
  943.  
  944. {"fmovecrx",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7", mfloat },        /* fmovecr.x #ccc, FPn */
  945. {"fmovecr",    two(0xF000, 0x5C00),    two(0xF1FF, 0xFC00),    "Ii#CF7", mfloat },
  946.  
  947. /* Other fmovemx.  */
  948. {"fmovemx", two(0xF000, 0xF800), two(0xF1C0, 0xFF8F), "IiDk&s", mfloat }, /* reg to control,    static and dynamic: */
  949. {"fmovemx", two(0xF000, 0xD800), two(0xF1C0, 0xFF8F), "Ii&sDk", mfloat }, /* from control to reg, static and dynamic: */
  950.  
  951. {"fmovemx", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Idl3&s", mfloat }, /* to control, static and dynamic: */
  952. {"fmovemx", two(0xF000, 0xF000), two(0xF1C0, 0xFF00), "Id#3&s", mfloat }, /* to control, static and dynamic: */
  953.  
  954. {"fmovemx", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&sl3", mfloat }, /* from control, static and dynamic: */
  955. {"fmovemx", two(0xF000, 0xD000), two(0xF1C0, 0xFF00), "Id&s#3", mfloat }, /* from control, static and dynamic: */
  956.  
  957. {"fmovemx", two(0xF020, 0xE800), two(0xF1F8, 0xFF8F), "IiDk-s", mfloat }, /* reg to autodecrement, static and dynamic */
  958. {"fmovemx", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "IdL3-s", mfloat }, /* to autodecrement, static and dynamic */
  959. {"fmovemx", two(0xF020, 0xE000), two(0xF1F8, 0xFF00), "Id#3-s", mfloat }, /* to autodecrement, static and dynamic */
  960.  
  961. {"fmovemx", two(0xF018, 0xD800), two(0xF1F8, 0xFF8F), "Ii+sDk", mfloat }, /* from autoinc to reg, static and dynamic: */
  962. {"fmovemx", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+sl3", mfloat }, /* from autoincrement, static and dynamic: */
  963. {"fmovemx", two(0xF018, 0xD000), two(0xF1F8, 0xFF00), "Id+s#3", mfloat }, /* from autoincrement, static and dynamic: */
  964.  
  965. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s", mfloat },
  966. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Ii#8@s", mfloat },
  967. {"fmoveml",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s", mfloat },
  968.  
  969. {"fmoveml",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8", mfloat },
  970. {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*s#8", mfloat },
  971. {"fmoveml",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8", mfloat },
  972.  
  973. /* fmovemx with register lists */
  974. {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "IdL3-s", mfloat }, /* to autodec, static & dynamic */
  975. {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Idl3&s", mfloat }, /* to control, static and dynamic */
  976. {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+sl3", mfloat }, /* from autoinc, static & dynamic */
  977. {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&sl3", mfloat }, /* from control, static and dynamic */
  978.  
  979.     /* Alternate mnemonics for GNU as and GNU CC */
  980. {"fmovem",    two(0xF020, 0xE000),    two(0xF1F8, 0xFF00),    "Id#3-s", mfloat }, /* to autodecrement, static and dynamic */
  981. {"fmovem",    two(0xF020, 0xE800),    two(0xF1F8, 0xFF8F),    "IiDk-s", mfloat }, /* to autodecrement, static and dynamic */
  982.  
  983. {"fmovem",    two(0xF000, 0xF000),    two(0xF1C0, 0xFF00),    "Id#3&s", mfloat }, /* to control, static and dynamic: */
  984. {"fmovem",    two(0xF000, 0xF800),    two(0xF1C0, 0xFF8F),    "IiDk&s", mfloat }, /* to control, static and dynamic: */
  985.  
  986. {"fmovem",    two(0xF018, 0xD000),    two(0xF1F8, 0xFF00),    "Id+s#3", mfloat }, /* from autoincrement, static and dynamic: */
  987. {"fmovem",    two(0xF018, 0xD800),    two(0xF1F8, 0xFF8F),    "Ii+sDk", mfloat }, /* from autoincrement, static and dynamic: */
  988.   
  989. {"fmovem",    two(0xF000, 0xD000),    two(0xF1C0, 0xFF00),    "Id&s#3", mfloat }, /* from control, static and dynamic: */
  990. {"fmovem",    two(0xF000, 0xD800),    two(0xF1C0, 0xFF8F),    "Ii&sDk", mfloat }, /* from control, static and dynamic: */
  991.  
  992. /* fmoveml a FP-control register */
  993. {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "Iis8@s", mfloat },
  994. {"fmovem",    two(0xF000, 0x8000),    two(0xF1C0, 0xE3FF),    "Ii*ss8", mfloat },
  995.  
  996. /* fmoveml a FP-control reglist */
  997. {"fmovem",    two(0xF000, 0xA000),    two(0xF1C0, 0xE3FF),    "IiL8@s", mfloat },
  998. {"fmovem",    two(0xF000, 0x8000),    two(0xF2C0, 0xE3FF),    "Ii*sL8", mfloat },
  999.  
  1000. {"fmulb",    two(0xF000, 0x5823),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1001. {"fmuld",    two(0xF000, 0x5423),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1002. {"fmull",    two(0xF000, 0x4023),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1003. {"fmulp",    two(0xF000, 0x4C23),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1004. {"fmuls",    two(0xF000, 0x4423),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1005. {"fmulw",    two(0xF000, 0x5023),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1006. {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1007. {"fmulx",    two(0xF000, 0x4823),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1008. /* {"fmulx",    two(0xF000, 0x0023),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
  1009.  
  1010. {"fsmulb",    two(0xF000, 0x5833),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1011. {"fsmuld",    two(0xF000, 0x5433),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1012. {"fsmull",    two(0xF000, 0x4033),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1013. {"fsmulp",    two(0xF000, 0x4C33),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1014. {"fsmuls",    two(0xF000, 0x4433),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1015. {"fsmulw",    two(0xF000, 0x5033),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1016. {"fsmulx",    two(0xF000, 0x0033),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1017. {"fsmulx",    two(0xF000, 0x4833),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1018. /* {"fsmulx",    two(0xF000, 0x0033),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
  1019.  
  1020. {"fdmulb",    two(0xF000, 0x5837),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1021. {"fdmuld",    two(0xF000, 0x5437),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1022. {"fdmull",    two(0xF000, 0x4037),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1023. {"fdmulp",    two(0xF000, 0x4C37),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1024. {"fdmuls",    two(0xF000, 0x4437),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1025. {"fdmulw",    two(0xF000, 0x5037),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1026. {"fdmulx",    two(0xF000, 0x0037),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1027. {"fdmulx",    two(0xF000, 0x4837),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1028. /* {"dfmulx",    two(0xF000, 0x0037),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 }, JF */
  1029.  
  1030. {"fnegb",    two(0xF000, 0x581A),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1031. {"fnegd",    two(0xF000, 0x541A),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1032. {"fnegl",    two(0xF000, 0x401A),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1033. {"fnegp",    two(0xF000, 0x4C1A),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1034. {"fnegs",    two(0xF000, 0x441A),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1035. {"fnegw",    two(0xF000, 0x501A),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1036. {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1037. {"fnegx",    two(0xF000, 0x481A),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1038. {"fnegx",    two(0xF000, 0x001A),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1039.  
  1040. {"fsnegb",    two(0xF000, 0x585A),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1041. {"fsnegd",    two(0xF000, 0x545A),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1042. {"fsnegl",    two(0xF000, 0x405A),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1043. {"fsnegp",    two(0xF000, 0x4C5A),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1044. {"fsnegs",    two(0xF000, 0x445A),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1045. {"fsnegw",    two(0xF000, 0x505A),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1046. {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1047. {"fsnegx",    two(0xF000, 0x485A),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1048. {"fsnegx",    two(0xF000, 0x005A),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1049.  
  1050. {"fdnegb",    two(0xF000, 0x585E),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1051. {"fdnegd",    two(0xF000, 0x545E),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1052. {"fdnegl",    two(0xF000, 0x405E),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1053. {"fdnegp",    two(0xF000, 0x4C5E),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1054. {"fdnegs",    two(0xF000, 0x445E),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1055. {"fdnegw",    two(0xF000, 0x505E),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1056. {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1057. {"fdnegx",    two(0xF000, 0x485E),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1058. {"fdnegx",    two(0xF000, 0x005E),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1059.  
  1060. {"fnop",    two(0xF280, 0x0000),    two(0xFFFF, 0xFFFF),    "Ii", mfloat },
  1061.  
  1062. {"fremb",    two(0xF000, 0x5825),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1063. {"fremd",    two(0xF000, 0x5425),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1064. {"freml",    two(0xF000, 0x4025),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1065. {"fremp",    two(0xF000, 0x4C25),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1066. {"frems",    two(0xF000, 0x4425),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1067. {"fremw",    two(0xF000, 0x5025),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1068. {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1069. {"fremx",    two(0xF000, 0x4825),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1070. /* {"fremx",    two(0xF000, 0x0025),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
  1071.  
  1072. {"frestore",    one(0xF140),        one(0xF1C0),        "Id&s", mfloat },
  1073. {"frestore",    one(0xF158),        one(0xF1F8),        "Id+s", mfloat },
  1074. {"fsave",    one(0xF100),        one(0xF1C0),        "Id&s", mfloat },
  1075. {"fsave",    one(0xF120),        one(0xF1F8),        "Id-s", mfloat },
  1076.  
  1077. {"fscaleb",    two(0xF000, 0x5826),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1078. {"fscaled",    two(0xF000, 0x5426),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1079. {"fscalel",    two(0xF000, 0x4026),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1080. {"fscalep",    two(0xF000, 0x4C26),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1081. {"fscales",    two(0xF000, 0x4426),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1082. {"fscalew",    two(0xF000, 0x5026),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1083. {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1084. {"fscalex",    two(0xF000, 0x4826),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1085. /* {"fscalex",    two(0xF000, 0x0026),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat }, JF */
  1086.  
  1087. /* $ is necessary to prevent the assembler from using PC-relative.
  1088.    If @ were used, "label: fseq label" could produce "ftrapeq",
  1089.    because "label" became "pc@label".  */
  1090. {"fseq",    two(0xF040, 0x0001),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1091. {"fsf",        two(0xF040, 0x0000),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1092. {"fsge",    two(0xF040, 0x0013),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1093. {"fsgl",    two(0xF040, 0x0016),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1094. {"fsgle",    two(0xF040, 0x0017),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1095. {"fsgt",    two(0xF040, 0x0012),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1096. {"fsle",    two(0xF040, 0x0015),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1097. {"fslt",    two(0xF040, 0x0014),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1098. {"fsne",    two(0xF040, 0x000E),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1099. {"fsnge",    two(0xF040, 0x001C),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1100. {"fsngl",    two(0xF040, 0x0019),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1101. {"fsngle",    two(0xF040, 0x0018),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1102. {"fsngt",    two(0xF040, 0x001D),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1103. {"fsnle",    two(0xF040, 0x001A),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1104. {"fsnlt",    two(0xF040, 0x001B),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1105. {"fsoge",    two(0xF040, 0x0003),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1106. {"fsogl",    two(0xF040, 0x0006),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1107. {"fsogt",    two(0xF040, 0x0002),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1108. {"fsole",    two(0xF040, 0x0005),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1109. {"fsolt",    two(0xF040, 0x0004),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1110. {"fsor",    two(0xF040, 0x0007),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1111. {"fsseq",    two(0xF040, 0x0011),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1112. {"fssf",    two(0xF040, 0x0010),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1113. {"fssne",    two(0xF040, 0x001E),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1114. {"fsst",    two(0xF040, 0x001F),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1115. {"fst",        two(0xF040, 0x000F),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1116. {"fsueq",    two(0xF040, 0x0009),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1117. {"fsuge",    two(0xF040, 0x000B),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1118. {"fsugt",    two(0xF040, 0x000A),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1119. {"fsule",    two(0xF040, 0x000D),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1120. {"fsult",    two(0xF040, 0x000C),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1121. {"fsun",    two(0xF040, 0x0008),    two(0xF1C0, 0xFFFF),    "Ii$s", mfloat },
  1122.  
  1123. {"fsgldivb",    two(0xF000, 0x5824),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1124. {"fsgldivd",    two(0xF000, 0x5424),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1125. {"fsgldivl",    two(0xF000, 0x4024),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1126. {"fsgldivp",    two(0xF000, 0x4C24),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1127. {"fsgldivs",    two(0xF000, 0x4424),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1128. {"fsgldivw",    two(0xF000, 0x5024),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1129. {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1130. {"fsgldivx",    two(0xF000, 0x4824),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1131. {"fsgldivx",    two(0xF000, 0x0024),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1132.  
  1133. {"fsglmulb",    two(0xF000, 0x5827),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1134. {"fsglmuld",    two(0xF000, 0x5427),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1135. {"fsglmull",    two(0xF000, 0x4027),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1136. {"fsglmulp",    two(0xF000, 0x4C27),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1137. {"fsglmuls",    two(0xF000, 0x4427),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1138. {"fsglmulw",    two(0xF000, 0x5027),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1139. {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1140. {"fsglmulx",    two(0xF000, 0x4827),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1141. {"fsglmulx",    two(0xF000, 0x0027),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1142.  
  1143. {"fsinb",    two(0xF000, 0x580E),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1144. {"fsind",    two(0xF000, 0x540E),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1145. {"fsinl",    two(0xF000, 0x400E),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1146. {"fsinp",    two(0xF000, 0x4C0E),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1147. {"fsins",    two(0xF000, 0x440E),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1148. {"fsinw",    two(0xF000, 0x500E),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1149. {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1150. {"fsinx",    two(0xF000, 0x480E),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1151. {"fsinx",    two(0xF000, 0x000E),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1152.  
  1153. {"fsinhb",    two(0xF000, 0x5802),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1154. {"fsinhd",    two(0xF000, 0x5402),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1155. {"fsinhl",    two(0xF000, 0x4002),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1156. {"fsinhp",    two(0xF000, 0x4C02),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1157. {"fsinhs",    two(0xF000, 0x4402),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1158. {"fsinhw",    two(0xF000, 0x5002),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1159. {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1160. {"fsinhx",    two(0xF000, 0x4802),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1161. {"fsinhx",    two(0xF000, 0x0002),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1162.  
  1163. {"fsincosb",    two(0xF000, 0x5830),    two(0xF1C0, 0xFC78),    "Ii;bF3F7", mfloat },
  1164. {"fsincosd",    two(0xF000, 0x5430),    two(0xF1C0, 0xFC78),    "Ii;FF3F7", mfloat },
  1165. {"fsincosl",    two(0xF000, 0x4030),    two(0xF1C0, 0xFC78),    "Ii;lF3F7", mfloat },
  1166. {"fsincosp",    two(0xF000, 0x4C30),    two(0xF1C0, 0xFC78),    "Ii;pF3F7", mfloat },
  1167. {"fsincoss",    two(0xF000, 0x4430),    two(0xF1C0, 0xFC78),    "Ii;fF3F7", mfloat },
  1168. {"fsincosw",    two(0xF000, 0x5030),    two(0xF1C0, 0xFC78),    "Ii;wF3F7", mfloat },
  1169. {"fsincosx",    two(0xF000, 0x0030),    two(0xF1C0, 0xE078),    "IiF8F3F7", mfloat },
  1170. {"fsincosx",    two(0xF000, 0x4830),    two(0xF1C0, 0xFC78),    "Ii;xF3F7", mfloat },
  1171.  
  1172. {"fsqrtb",    two(0xF000, 0x5804),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1173. {"fsqrtd",    two(0xF000, 0x5404),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1174. {"fsqrtl",    two(0xF000, 0x4004),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1175. {"fsqrtp",    two(0xF000, 0x4C04),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1176. {"fsqrts",    two(0xF000, 0x4404),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1177. {"fsqrtw",    two(0xF000, 0x5004),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1178. {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1179. {"fsqrtx",    two(0xF000, 0x4804),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1180. {"fsqrtx",    two(0xF000, 0x0004),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1181.  
  1182. {"fssqrtb",    two(0xF000, 0x5841),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1183. {"fssqrtd",    two(0xF000, 0x5441),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1184. {"fssqrtl",    two(0xF000, 0x4041),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1185. {"fssqrtp",    two(0xF000, 0x4C41),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1186. {"fssqrts",    two(0xF000, 0x4441),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1187. {"fssqrtw",    two(0xF000, 0x5041),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1188. {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1189. {"fssqrtx",    two(0xF000, 0x4841),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1190. {"fssqrtx",    two(0xF000, 0x0041),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1191.  
  1192. {"fdsqrtb",    two(0xF000, 0x5845),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1193. {"fdsqrtd",    two(0xF000, 0x5445),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1194. {"fdsqrtl",    two(0xF000, 0x4045),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1195. {"fdsqrtp",    two(0xF000, 0x4C45),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1196. {"fdsqrts",    two(0xF000, 0x4445),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1197. {"fdsqrtw",    two(0xF000, 0x5045),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1198. {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1199. {"fdsqrtx",    two(0xF000, 0x4845),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1200. {"fdsqrtx",    two(0xF000, 0x0045),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1201.  
  1202. {"fsubb",    two(0xF000, 0x5828),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1203. {"fsubd",    two(0xF000, 0x5428),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1204. {"fsubl",    two(0xF000, 0x4028),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1205. {"fsubp",    two(0xF000, 0x4C28),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1206. {"fsubs",    two(0xF000, 0x4428),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1207. {"fsubw",    two(0xF000, 0x5028),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1208. {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1209. {"fsubx",    two(0xF000, 0x4828),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1210. {"fsubx",    two(0xF000, 0x0028),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1211.  
  1212. {"fssubb",    two(0xF000, 0x5838),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1213. {"fssubd",    two(0xF000, 0x5438),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1214. {"fssubl",    two(0xF000, 0x4038),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1215. {"fssubp",    two(0xF000, 0x4C38),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1216. {"fssubs",    two(0xF000, 0x4438),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1217. {"fssubw",    two(0xF000, 0x5038),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1218. {"fssubx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1219. {"fssubx",    two(0xF000, 0x4838),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1220. {"fssubx",    two(0xF000, 0x0038),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1221.  
  1222. {"fdsubb",    two(0xF000, 0x583c),    two(0xF1C0, 0xFC7F),    "Ii;bF7", m68040 },
  1223. {"fdsubd",    two(0xF000, 0x543c),    two(0xF1C0, 0xFC7F),    "Ii;FF7", m68040 },
  1224. {"fdsubl",    two(0xF000, 0x403c),    two(0xF1C0, 0xFC7F),    "Ii;lF7", m68040 },
  1225. {"fdsubp",    two(0xF000, 0x4C3c),    two(0xF1C0, 0xFC7F),    "Ii;pF7", m68040 },
  1226. {"fdsubs",    two(0xF000, 0x443c),    two(0xF1C0, 0xFC7F),    "Ii;fF7", m68040 },
  1227. {"fdsubw",    two(0xF000, 0x503c),    two(0xF1C0, 0xFC7F),    "Ii;wF7", m68040 },
  1228. {"fdsubx",    two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiF8F7", m68040 },
  1229. {"fdsubx",    two(0xF000, 0x483c),    two(0xF1C0, 0xFC7F),    "Ii;xF7", m68040 },
  1230. {"fdsubx",    two(0xF000, 0x003c),    two(0xF1C0, 0xE07F),    "IiFt",   m68040 },
  1231.  
  1232. {"ftanb",    two(0xF000, 0x580F),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1233. {"ftand",    two(0xF000, 0x540F),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1234. {"ftanl",    two(0xF000, 0x400F),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1235. {"ftanp",    two(0xF000, 0x4C0F),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1236. {"ftans",    two(0xF000, 0x440F),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1237. {"ftanw",    two(0xF000, 0x500F),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1238. {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1239. {"ftanx",    two(0xF000, 0x480F),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1240. {"ftanx",    two(0xF000, 0x000F),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1241.  
  1242. {"ftanhb",    two(0xF000, 0x5809),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1243. {"ftanhd",    two(0xF000, 0x5409),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1244. {"ftanhl",    two(0xF000, 0x4009),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1245. {"ftanhp",    two(0xF000, 0x4C09),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1246. {"ftanhs",    two(0xF000, 0x4409),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1247. {"ftanhw",    two(0xF000, 0x5009),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1248. {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1249. {"ftanhx",    two(0xF000, 0x4809),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1250. {"ftanhx",    two(0xF000, 0x0009),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1251.  
  1252. {"ftentoxb",    two(0xF000, 0x5812),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1253. {"ftentoxd",    two(0xF000, 0x5412),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1254. {"ftentoxl",    two(0xF000, 0x4012),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1255. {"ftentoxp",    two(0xF000, 0x4C12),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1256. {"ftentoxs",    two(0xF000, 0x4412),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1257. {"ftentoxw",    two(0xF000, 0x5012),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1258. {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1259. {"ftentoxx",    two(0xF000, 0x4812),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1260. {"ftentoxx",    two(0xF000, 0x0012),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1261.  
  1262. {"ftrapeq",    two(0xF07C, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1263. {"ftrapf",    two(0xF07C, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1264. {"ftrapge",    two(0xF07C, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1265. {"ftrapgl",    two(0xF07C, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1266. {"ftrapgle",    two(0xF07C, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1267. {"ftrapgt",    two(0xF07C, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1268. {"ftraple",    two(0xF07C, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1269. {"ftraplt",    two(0xF07C, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1270. {"ftrapne",    two(0xF07C, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1271. {"ftrapnge",    two(0xF07C, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1272. {"ftrapngl",    two(0xF07C, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1273. {"ftrapngle",    two(0xF07C, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1274. {"ftrapngt",    two(0xF07C, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1275. {"ftrapnle",    two(0xF07C, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1276. {"ftrapnlt",    two(0xF07C, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1277. {"ftrapoge",    two(0xF07C, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1278. {"ftrapogl",    two(0xF07C, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1279. {"ftrapogt",    two(0xF07C, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1280. {"ftrapole",    two(0xF07C, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1281. {"ftrapolt",    two(0xF07C, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1282. {"ftrapor",    two(0xF07C, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1283. {"ftrapseq",    two(0xF07C, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1284. {"ftrapsf",    two(0xF07C, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1285. {"ftrapsne",    two(0xF07C, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1286. {"ftrapst",    two(0xF07C, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1287. {"ftrapt",    two(0xF07C, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1288. {"ftrapueq",    two(0xF07C, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1289. {"ftrapuge",    two(0xF07C, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1290. {"ftrapugt",    two(0xF07C, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1291. {"ftrapule",    two(0xF07C, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1292. {"ftrapult",    two(0xF07C, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1293. {"ftrapun",    two(0xF07C, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii", mfloat },
  1294.         
  1295. {"ftrapeqw",    two(0xF07A, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1296. {"ftrapfw",    two(0xF07A, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1297. {"ftrapgew",    two(0xF07A, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1298. {"ftrapglw",    two(0xF07A, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1299. {"ftrapglew",    two(0xF07A, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1300. {"ftrapgtw",    two(0xF07A, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1301. {"ftraplew",    two(0xF07A, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1302. {"ftrapltw",    two(0xF07A, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1303. {"ftrapnew",    two(0xF07A, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1304. {"ftrapngew",    two(0xF07A, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1305. {"ftrapnglw",    two(0xF07A, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1306. {"ftrapnglew",    two(0xF07A, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1307. {"ftrapngtw",    two(0xF07A, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1308. {"ftrapnlew",    two(0xF07A, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1309. {"ftrapnltw",    two(0xF07A, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1310. {"ftrapogew",    two(0xF07A, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1311. {"ftrapoglw",    two(0xF07A, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1312. {"ftrapogtw",    two(0xF07A, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1313. {"ftrapolew",    two(0xF07A, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1314. {"ftrapoltw",    two(0xF07A, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1315. {"ftraporw",    two(0xF07A, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1316. {"ftrapseqw",    two(0xF07A, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1317. {"ftrapsfw",    two(0xF07A, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1318. {"ftrapsnew",    two(0xF07A, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1319. {"ftrapstw",    two(0xF07A, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1320. {"ftraptw",    two(0xF07A, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1321. {"ftrapueqw",    two(0xF07A, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1322. {"ftrapugew",    two(0xF07A, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1323. {"ftrapugtw",    two(0xF07A, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1324. {"ftrapulew",    two(0xF07A, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1325. {"ftrapultw",    two(0xF07A, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1326. {"ftrapunw",    two(0xF07A, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^w", mfloat },
  1327.  
  1328. {"ftrapeql",    two(0xF07B, 0x0001),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1329. {"ftrapfl",    two(0xF07B, 0x0000),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1330. {"ftrapgel",    two(0xF07B, 0x0013),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1331. {"ftrapgll",    two(0xF07B, 0x0016),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1332. {"ftrapglel",    two(0xF07B, 0x0017),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1333. {"ftrapgtl",    two(0xF07B, 0x0012),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1334. {"ftraplel",    two(0xF07B, 0x0015),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1335. {"ftrapltl",    two(0xF07B, 0x0014),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1336. {"ftrapnel",    two(0xF07B, 0x000E),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1337. {"ftrapngel",    two(0xF07B, 0x001C),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1338. {"ftrapngll",    two(0xF07B, 0x0019),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1339. {"ftrapnglel",    two(0xF07B, 0x0018),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1340. {"ftrapngtl",    two(0xF07B, 0x001D),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1341. {"ftrapnlel",    two(0xF07B, 0x001A),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1342. {"ftrapnltl",    two(0xF07B, 0x001B),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1343. {"ftrapogel",    two(0xF07B, 0x0003),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1344. {"ftrapogll",    two(0xF07B, 0x0006),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1345. {"ftrapogtl",    two(0xF07B, 0x0002),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1346. {"ftrapolel",    two(0xF07B, 0x0005),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1347. {"ftrapoltl",    two(0xF07B, 0x0004),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1348. {"ftraporl",    two(0xF07B, 0x0007),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1349. {"ftrapseql",    two(0xF07B, 0x0011),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1350. {"ftrapsfl",    two(0xF07B, 0x0010),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1351. {"ftrapsnel",    two(0xF07B, 0x001E),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1352. {"ftrapstl",    two(0xF07B, 0x001F),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1353. {"ftraptl",    two(0xF07B, 0x000F),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1354. {"ftrapueql",    two(0xF07B, 0x0009),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1355. {"ftrapugel",    two(0xF07B, 0x000B),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1356. {"ftrapugtl",    two(0xF07B, 0x000A),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1357. {"ftrapulel",    two(0xF07B, 0x000D),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1358. {"ftrapultl",    two(0xF07B, 0x000C),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1359. {"ftrapunl",    two(0xF07B, 0x0008),    two(0xF1FF, 0xFFFF),    "Ii^l", mfloat },
  1360.  
  1361. {"ftstb",    two(0xF000, 0x583A),    two(0xF1C0, 0xFC7F),    "Ii;b", mfloat },
  1362. {"ftstd",    two(0xF000, 0x543A),    two(0xF1C0, 0xFC7F),    "Ii;F", mfloat },
  1363. {"ftstl",    two(0xF000, 0x403A),    two(0xF1C0, 0xFC7F),    "Ii;l", mfloat },
  1364. {"ftstp",    two(0xF000, 0x4C3A),    two(0xF1C0, 0xFC7F),    "Ii;p", mfloat },
  1365. {"ftsts",    two(0xF000, 0x443A),    two(0xF1C0, 0xFC7F),    "Ii;f", mfloat },
  1366. {"ftstw",    two(0xF000, 0x503A),    two(0xF1C0, 0xFC7F),    "Ii;w", mfloat },
  1367. {"ftstx",    two(0xF000, 0x003A),    two(0xF1C0, 0xE07F),    "IiF8", mfloat },
  1368. {"ftstx",    two(0xF000, 0x483A),    two(0xF1C0, 0xFC7F),    "Ii;x", mfloat },
  1369.  
  1370. {"ftwotoxb",    two(0xF000, 0x5811),    two(0xF1C0, 0xFC7F),    "Ii;bF7", mfloat },
  1371. {"ftwotoxd",    two(0xF000, 0x5411),    two(0xF1C0, 0xFC7F),    "Ii;FF7", mfloat },
  1372. {"ftwotoxl",    two(0xF000, 0x4011),    two(0xF1C0, 0xFC7F),    "Ii;lF7", mfloat },
  1373. {"ftwotoxp",    two(0xF000, 0x4C11),    two(0xF1C0, 0xFC7F),    "Ii;pF7", mfloat },
  1374. {"ftwotoxs",    two(0xF000, 0x4411),    two(0xF1C0, 0xFC7F),    "Ii;fF7", mfloat },
  1375. {"ftwotoxw",    two(0xF000, 0x5011),    two(0xF1C0, 0xFC7F),    "Ii;wF7", mfloat },
  1376. {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiF8F7", mfloat },
  1377. {"ftwotoxx",    two(0xF000, 0x4811),    two(0xF1C0, 0xFC7F),    "Ii;xF7", mfloat },
  1378. {"ftwotoxx",    two(0xF000, 0x0011),    two(0xF1C0, 0xE07F),    "IiFt",   mfloat },
  1379.  
  1380. /* Variable-sized float branches */
  1381.  
  1382. {"fjeq",    one(0xF081),        one(0xF1FF),        "IdBc", mfloat },
  1383. {"fjf",        one(0xF080),        one(0xF1FF),        "IdBc", mfloat },
  1384. {"fjge",    one(0xF093),        one(0xF1FF),        "IdBc", mfloat },
  1385. {"fjgl",    one(0xF096),        one(0xF1FF),        "IdBc", mfloat },
  1386. {"fjgle",    one(0xF097),        one(0xF1FF),        "IdBc", mfloat },
  1387. {"fjgt",    one(0xF092),        one(0xF1FF),        "IdBc", mfloat },
  1388. {"fjle",    one(0xF095),        one(0xF1FF),        "IdBc", mfloat },
  1389. {"fjlt",    one(0xF094),        one(0xF1FF),        "IdBc", mfloat },
  1390. {"fjne",    one(0xF08E),        one(0xF1FF),        "IdBc", mfloat },
  1391. {"fjnge",    one(0xF09C),        one(0xF1FF),        "IdBc", mfloat },
  1392. {"fjngl",    one(0xF099),        one(0xF1FF),        "IdBc", mfloat },
  1393. {"fjngle",    one(0xF098),        one(0xF1FF),        "IdBc", mfloat },
  1394. {"fjngt",    one(0xF09D),        one(0xF1FF),        "IdBc", mfloat },
  1395. {"fjnle",    one(0xF09A),        one(0xF1FF),        "IdBc", mfloat },
  1396. {"fjnlt",    one(0xF09B),        one(0xF1FF),        "IdBc", mfloat },
  1397. {"fjoge",    one(0xF083),        one(0xF1FF),        "IdBc", mfloat },
  1398. {"fjogl",    one(0xF086),        one(0xF1FF),        "IdBc", mfloat },
  1399. {"fjogt",    one(0xF082),        one(0xF1FF),        "IdBc", mfloat },
  1400. {"fjole",    one(0xF085),        one(0xF1FF),        "IdBc", mfloat },
  1401. {"fjolt",    one(0xF084),        one(0xF1FF),        "IdBc", mfloat },
  1402. {"fjor",    one(0xF087),        one(0xF1FF),        "IdBc", mfloat },
  1403. {"fjseq",    one(0xF091),        one(0xF1FF),        "IdBc", mfloat },
  1404. {"fjsf",    one(0xF090),        one(0xF1FF),        "IdBc", mfloat },
  1405. {"fjsne",    one(0xF09E),        one(0xF1FF),        "IdBc", mfloat },
  1406. {"fjst",    one(0xF09F),        one(0xF1FF),        "IdBc", mfloat },
  1407. {"fjt",        one(0xF08F),        one(0xF1FF),        "IdBc", mfloat },
  1408. {"fjueq",    one(0xF089),        one(0xF1FF),        "IdBc", mfloat },
  1409. {"fjuge",    one(0xF08B),        one(0xF1FF),        "IdBc", mfloat },
  1410. {"fjugt",    one(0xF08A),        one(0xF1FF),        "IdBc", mfloat },
  1411. {"fjule",    one(0xF08D),        one(0xF1FF),        "IdBc", mfloat },
  1412. {"fjult",    one(0xF08C),        one(0xF1FF),        "IdBc", mfloat },
  1413. {"fjun",    one(0xF088),        one(0xF1FF),        "IdBc", mfloat },
  1414. /* float stuff ends here */
  1415.  
  1416. {"illegal",    one(0045374),        one(0177777),        "",     m68000up },
  1417. {"jmp",        one(0047300),        one(0177700),        "!s",   m68000up },
  1418. {"jsr",        one(0047200),        one(0177700),        "!s",   m68000up },
  1419. {"lea",        one(0040700),        one(0170700),        "!sAd", m68000up },
  1420. {"linkw",    one(0047120),        one(0177770),        "As#w", m68000up },
  1421. {"linkl",    one(0044010),        one(0177770),        "As#l", m68020up },
  1422. {"link",    one(0047120),        one(0177770),        "As#w", m68000up },
  1423. {"link",    one(0044010),        one(0177770),        "As#l", m68020up },
  1424.  
  1425. {"lslb",    one(0160410),        one(0170770),        "QdDs", m68000up },    /* lsrb #Q,    Ds */
  1426. {"lslb",    one(0160450),        one(0170770),        "DdDs", m68000up },    /* lsrb Dd,    Ds */
  1427. {"lslw",    one(0160510),        one(0170770),        "QdDs", m68000up },    /* lsrb #Q,    Ds */
  1428. {"lslw",    one(0160550),        one(0170770),        "DdDs", m68000up },    /* lsrb Dd,    Ds */
  1429. {"lslw",    one(0161700),        one(0177700),        "~s",   m68000up },    /* Shift memory */
  1430. {"lsll",    one(0160610),        one(0170770),        "QdDs", m68000up },    /* lsrb #Q,    Ds */
  1431. {"lsll",    one(0160650),        one(0170770),        "DdDs", m68000up },    /* lsrb Dd,    Ds */
  1432.  
  1433. {"lsrb",    one(0160010),        one(0170770),        "QdDs", m68000up }, /* lsrb #Q,    Ds */
  1434. {"lsrb",    one(0160050),        one(0170770),        "DdDs", m68000up },    /* lsrb Dd,    Ds */
  1435. {"lsrl",    one(0160210),        one(0170770),        "QdDs", m68000up },    /* lsrb #Q,    Ds */
  1436. {"lsrl",    one(0160250),        one(0170770),        "DdDs", m68000up },    /* lsrb #Q,    Ds */
  1437. {"lsrw",    one(0160110),        one(0170770),        "QdDs", m68000up },    /* lsrb #Q,    Ds */
  1438. {"lsrw",    one(0160150),        one(0170770),        "DdDs", m68000up },    /* lsrb #Q,    Ds */
  1439. {"lsrw",    one(0161300),        one(0177700),        "~s",   m68000up },    /* Shift memory */
  1440.  
  1441. {"moveal",    one(0020100),        one(0170700),        "*lAd", m68000up },
  1442. {"moveaw",    one(0030100),        one(0170700),        "*wAd", m68000up },
  1443. {"moveb",    one(0010000),        one(0170000),        ";b$d", m68000up },    /* move */
  1444. {"movel",    one(0070000),        one(0170400),        "MsDd", m68000up },    /* moveq written as move */
  1445. {"movel",    one(0020000),        one(0170000),        "*l$d", m68000up },
  1446. {"movel",    one(0020100),        one(0170700),        "*lAd", m68000up },
  1447. {"movel",    one(0047140),        one(0177770),        "AsUd", m68000up },    /* move to USP */
  1448. {"movel",    one(0047150),        one(0177770),        "UdAs", m68000up },    /* move from USP */
  1449.  
  1450. {"movec",    one(0047173),        one(0177777),        "R1Jj", m68010up },
  1451. {"movec",    one(0047173),        one(0177777),        "R1#j", m68010up },
  1452. {"movec",    one(0047172),        one(0177777),        "JjR1", m68010up },
  1453. {"movec",    one(0047172),        one(0177777),        "#jR1", m68010up },
  1454.  
  1455. /* JF added these next four for the assembler */
  1456. {"moveml",    one(0044300),        one(0177700),        "Lw&s", m68000up },    /* movem reg to mem. */
  1457. {"moveml",    one(0044340),        one(0177770),        "lw-s", m68000up },    /* movem reg to autodecrement. */
  1458. {"moveml",    one(0046300),        one(0177700),        "!sLw", m68000up },    /* movem mem to reg. */
  1459. {"moveml",    one(0046330),        one(0177770),        "+sLw", m68000up },    /* movem autoinc to reg. */
  1460.  
  1461. {"moveml",    one(0044300),        one(0177700),        "#w&s", m68000up },    /* movem reg to mem. */
  1462. {"moveml",    one(0044340),        one(0177770),        "#w-s", m68000up },    /* movem reg to autodecrement. */
  1463. {"moveml",    one(0046300),        one(0177700),        "!s#w", m68000up },    /* movem mem to reg. */
  1464. {"moveml",    one(0046330),        one(0177770),        "+s#w", m68000up },    /* movem autoinc to reg. */
  1465.  
  1466. /* JF added these next four for the assembler */
  1467. {"movemw",    one(0044200),        one(0177700),        "Lw&s", m68000up },    /* movem reg to mem. */
  1468. {"movemw",    one(0044240),        one(0177770),        "lw-s", m68000up },    /* movem reg to autodecrement. */
  1469. {"movemw",    one(0046200),        one(0177700),        "!sLw", m68000up },    /* movem mem to reg. */
  1470. {"movemw",    one(0046230),        one(0177770),        "+sLw", m68000up },    /* movem autoinc to reg. */
  1471.  
  1472. {"movemw",    one(0044200),        one(0177700),        "#w&s", m68000up },    /* movem reg to mem. */
  1473. {"movemw",    one(0044240),        one(0177770),        "#w-s", m68000up },    /* movem reg to autodecrement. */
  1474. {"movemw",    one(0046200),        one(0177700),        "!s#w", m68000up },    /* movem mem to reg. */
  1475. {"movemw",    one(0046230),        one(0177770),        "+s#w", m68000up },    /* movem autoinc to reg. */
  1476.  
  1477. {"movepl",    one(0000510),        one(0170770),        "dsDd", m68000up },    /* memory to register */
  1478. {"movepl",    one(0000710),        one(0170770),        "Ddds", m68000up },    /* register to memory */
  1479. {"movepw",    one(0000410),        one(0170770),        "dsDd", m68000up },    /* memory to register */
  1480. {"movepw",    one(0000610),        one(0170770),        "Ddds", m68000up },    /* register to memory */
  1481. {"moveq",    one(0070000),        one(0170400),        "MsDd", m68000up },
  1482. {"movew",    one(0030000),        one(0170000),        "*w$d", m68000up },
  1483. {"movew",    one(0030100),        one(0170700),        "*wAd", m68000up },    /* movea,    written as move */
  1484. {"movew",    one(0040300),        one(0177700),        "Ss$s", m68000up },    /* Move from sr */
  1485. {"movew",    one(0041300),        one(0177700),        "Cs$s", m68010up },    /* Move from ccr */
  1486. {"movew",    one(0042300),        one(0177700),        ";wCd", m68000up },    /* move to ccr */
  1487. {"movew",    one(0043300),        one(0177700),        ";wSd", m68000up },    /* move to sr */
  1488.  
  1489. {"movesb",    two(0007000, 0),    two(0177700, 07777),    "~sR1", m68010up },     /* moves from memory */
  1490. {"movesb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s", m68010up },     /* moves to memory */
  1491. {"movesl",    two(0007200, 0),    two(0177700, 07777),    "~sR1", m68010up },     /* moves from memory */
  1492. {"movesl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s", m68010up },     /* moves to memory */
  1493. {"movesw",    two(0007100, 0),    two(0177700, 07777),    "~sR1", m68010up },     /* moves from memory */
  1494. {"movesw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s", m68010up },     /* moves to memory */
  1495.  
  1496. {"move16",    two(0xf620, 0x8000),    two(0xfff8, 0x8fff),    "+s+1", m68040 },
  1497. {"move16",    one(0xf600),    one(0xfff8),    "+s_L", m68040 },
  1498. {"move16",    one(0xf608),    one(0xfff8),    "_L+s", m68040 },
  1499. {"move16",    one(0xf610),    one(0xfff8),    "as_L", m68040 },
  1500. {"move16",    one(0xf618),    one(0xfff8),    "_Las", m68040 },
  1501.  
  1502. {"mulsl",    two(0046000, 004000),    two(0177700, 0107770),    ";lD1", m68020up },
  1503. {"mulsl",    two(0046000, 006000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  1504. {"mulsw",    one(0140700),        one(0170700),        ";wDd", m68000up },
  1505. {"muls",    one(0140700),        one(0170700),        ";wDd", m68000up },
  1506. {"mulul",    two(0046000, 000000),    two(0177700, 0107770),    ";lD1", m68020up },
  1507. {"mulul",    two(0046000, 002000),    two(0177700, 0107770),    ";lD3D1", m68020up },
  1508. {"muluw",    one(0140300),        one(0170700),        ";wDd", m68000up },
  1509. {"mulu",    one(0140300),        one(0170700),        ";wDd", m68000up },
  1510. {"nbcd",    one(0044000),        one(0177700),        "$s", m68000up },
  1511. {"negb",    one(0042000),        one(0177700),        "$s", m68000up },
  1512. {"negl",    one(0042200),        one(0177700),        "$s", m68000up },
  1513. {"negw",    one(0042100),        one(0177700),        "$s", m68000up },
  1514. {"negxb",    one(0040000),        one(0177700),        "$s", m68000up },
  1515. {"negxl",    one(0040200),        one(0177700),        "$s", m68000up },
  1516. {"negxw",    one(0040100),        one(0177700),        "$s", m68000up },
  1517. {"nop",        one(0047161),        one(0177777),        "", m68000up },
  1518. {"notb",    one(0043000),        one(0177700),        "$s", m68000up },
  1519. {"notl",    one(0043200),        one(0177700),        "$s", m68000up },
  1520. {"notw",    one(0043100),        one(0177700),        "$s", m68000up },
  1521.  
  1522. {"orb",        one(0000000),        one(0177700),        "#b$s", m68000up },    /* ori written as or */
  1523. {"orb",        one(0000074),        one(0177777),        "#bCs", m68000up },    /* ori to ccr */
  1524. {"orb",        one(0100000),        one(0170700),        ";bDd", m68000up },    /* memory to register */
  1525. {"orb",        one(0100400),        one(0170700),        "Dd~s", m68000up },    /* register to memory */
  1526. {"orib",    one(0000000),        one(0177700),        "#b$s", m68000up },
  1527. {"orib",    one(0000074),        one(0177777),        "#bCs", m68000up },    /* ori to ccr */
  1528. {"oril",    one(0000200),        one(0177700),        "#l$s", m68000up },
  1529. {"oriw",    one(0000100),        one(0177700),        "#w$s", m68000up },
  1530. {"oriw",    one(0000174),        one(0177777),        "#wSs", m68000up },    /* ori to sr */
  1531. {"orl",        one(0000200),        one(0177700),        "#l$s", m68000up },
  1532. {"orl",        one(0100200),        one(0170700),        ";lDd", m68000up },    /* memory to register */
  1533. {"orl",        one(0100600),        one(0170700),        "Dd~s", m68000up },    /* register to memory */
  1534. {"orw",        one(0000100),        one(0177700),        "#w$s", m68000up },
  1535. {"orw",        one(0000174),        one(0177777),        "#wSs", m68000up },    /* ori to sr */
  1536. {"orw",        one(0100100),        one(0170700),        ";wDd", m68000up },    /* memory to register */
  1537. {"orw",        one(0100500),        one(0170700),        "Dd~s", m68000up },    /* register to memory */
  1538.  
  1539. {"pack",    one(0100500),        one(0170770),        "DsDd#w", m68020up },    /* pack Ds,    Dd,    #w */
  1540. {"pack",    one(0100510),        one(0170770),        "-s-d#w", m68020up },    /* pack -(As),    -(Ad),    #w */
  1541.  
  1542. #ifndef NO_68851
  1543. {"pbac",    one(0xf0c7),        one(0xffbf),        "Bc", m68851 },
  1544. {"pbacw",    one(0xf087),        one(0xffbf),        "Bc", m68851 },
  1545. {"pbas",    one(0xf0c6),        one(0xffbf),        "Bc", m68851 },
  1546. {"pbasw",    one(0xf086),        one(0xffbf),        "Bc", m68851 },
  1547. {"pbbc",    one(0xf0c1),        one(0xffbf),        "Bc", m68851 },
  1548. {"pbbcw",    one(0xf081),        one(0xffbf),        "Bc", m68851 },
  1549. {"pbbs",    one(0xf0c0),        one(0xffbf),        "Bc", m68851 },
  1550. {"pbbsw",    one(0xf080),        one(0xffbf),        "Bc", m68851 },
  1551. {"pbcc",    one(0xf0cf),        one(0xffbf),        "Bc", m68851 },
  1552. {"pbccw",    one(0xf08f),        one(0xffbf),        "Bc", m68851 },
  1553. {"pbcs",    one(0xf0ce),        one(0xffbf),        "Bc", m68851 },
  1554. {"pbcsw",    one(0xf08e),        one(0xffbf),        "Bc", m68851 },
  1555. {"pbgc",    one(0xf0cd),        one(0xffbf),        "Bc", m68851 },
  1556. {"pbgcw",    one(0xf08d),        one(0xffbf),        "Bc", m68851 },
  1557. {"pbgs",    one(0xf0cc),        one(0xffbf),        "Bc", m68851 },
  1558. {"pbgsw",    one(0xf08c),        one(0xffbf),        "Bc", m68851 },
  1559. {"pbic",    one(0xf0cb),        one(0xffbf),        "Bc", m68851 },
  1560. {"pbicw",    one(0xf08b),        one(0xffbf),        "Bc", m68851 },
  1561. {"pbis",    one(0xf0ca),        one(0xffbf),        "Bc", m68851 },
  1562. {"pbisw",    one(0xf08a),        one(0xffbf),        "Bc", m68851 },
  1563. {"pblc",    one(0xf0c3),        one(0xffbf),        "Bc", m68851 },
  1564. {"pblcw",    one(0xf083),        one(0xffbf),        "Bc", m68851 },
  1565. {"pbls",    one(0xf0c2),        one(0xffbf),        "Bc", m68851 },
  1566. {"pblsw",    one(0xf082),        one(0xffbf),        "Bc", m68851 },
  1567. {"pbsc",    one(0xf0c5),        one(0xffbf),        "Bc", m68851 },
  1568. {"pbscw",    one(0xf085),        one(0xffbf),        "Bc", m68851 },
  1569. {"pbss",    one(0xf0c4),        one(0xffbf),        "Bc", m68851 },
  1570. {"pbssw",    one(0xf084),        one(0xffbf),        "Bc", m68851 },
  1571. {"pbwc",    one(0xf0c9),        one(0xffbf),        "Bc", m68851 },
  1572. {"pbwcw",    one(0xf089),        one(0xffbf),        "Bc", m68851 },
  1573. {"pbws",    one(0xf0c8),        one(0xffbf),        "Bc", m68851 },
  1574. {"pbwsw",    one(0xf088),        one(0xffbf),        "Bc", m68851 },
  1575.  
  1576. {"pdbac",    two(0xf048, 0x0007),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1577. {"pdbas",    two(0xf048, 0x0006),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1578. {"pdbbc",    two(0xf048, 0x0001),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1579. {"pdbbs",    two(0xf048, 0x0000),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1580. {"pdbcc",    two(0xf048, 0x000f),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1581. {"pdbcs",    two(0xf048, 0x000e),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1582. {"pdbgc",    two(0xf048, 0x000d),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1583. {"pdbgs",    two(0xf048, 0x000c),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1584. {"pdbic",    two(0xf048, 0x000b),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1585. {"pdbis",    two(0xf048, 0x000a),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1586. {"pdblc",    two(0xf048, 0x0003),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1587. {"pdbls",    two(0xf048, 0x0002),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1588. {"pdbsc",    two(0xf048, 0x0005),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1589. {"pdbss",    two(0xf048, 0x0004),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1590. {"pdbwc",    two(0xf048, 0x0009),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1591. {"pdbws",    two(0xf048, 0x0008),    two(0xfff8, 0xffff),    "DsBw", m68851 },
  1592. #endif /* NO_68851 */
  1593.  
  1594. {"pea",        one(0044100),        one(0177700),        "!s", m68000up },
  1595.  
  1596. #ifndef NO_68851
  1597. {"pflusha",    two(0xf000, 0x2400),    two(0xffff, 0xffff),    "",        m68030 | m68851 },
  1598. {"pflusha",    one(0xf510),        one(0xfff8),         "",        m68040 },
  1599.  
  1600. {"pflush",    two(0xf000, 0x3010),    two(0xffc0, 0xfe10),    "T3T9",        m68030 | m68851 },
  1601. {"pflush",    two(0xf000, 0x3810),    two(0xffc0, 0xfe10),    "T3T9&s",    m68030 | m68851 },
  1602. {"pflush",    two(0xf000, 0x3008),    two(0xffc0, 0xfe18),    "D3T9",        m68030 | m68851 },
  1603. {"pflush",    two(0xf000, 0x3808),    two(0xffc0, 0xfe18),    "D3T9&s",    m68030 | m68851 },
  1604. {"pflush",    two(0xf000, 0x3000),    two(0xffc0, 0xfe1e),    "f3T9",        m68030 | m68851 },
  1605. {"pflush",    two(0xf000, 0x3800),    two(0xffc0, 0xfe1e),    "f3T9&s",    m68030 | m68851 },
  1606. {"pflush",    one(0xf500),        one(0xfff8),         "As",        m68040 },
  1607.  
  1608. {"pflushan",    one(0xf518),        one(0xfff8),        "",        m68040 },
  1609. {"pflushn",    one(0xf508),        one(0xfff8),        "As",        m68040 },
  1610.  
  1611. {"pflushr",    two(0xf000, 0xa000),    two(0xffc0, 0xffff),    "|s",        m68851 },
  1612.  
  1613. {"pflushs",    two(0xf000, 0x3410),    two(0xfff8, 0xfe10),    "T3T9",        m68851 },
  1614. {"pflushs",    two(0xf000, 0x3c10),    two(0xfff8, 0xfe00),    "T3T9&s",    m68851 },
  1615. {"pflushs",    two(0xf000, 0x3408),    two(0xfff8, 0xfe18),    "D3T9",        m68851 },
  1616. {"pflushs",    two(0xf000, 0x3c08),    two(0xfff8, 0xfe18),    "D3T9&s",    m68851 },
  1617. {"pflushs",    two(0xf000, 0x3400),    two(0xfff8, 0xfe1e),    "f3T9",        m68851 },
  1618. {"pflushs",    two(0xf000, 0x3c00),    two(0xfff8, 0xfe1e),    "f3T9&s",    m68851 },
  1619.  
  1620. {"ploadr",    two(0xf000, 0x2210),    two(0xffc0, 0xfff0),    "T3&s",    m68030 | m68851 },
  1621. {"ploadr",    two(0xf000, 0x2208),    two(0xffc0, 0xfff8),    "D3&s",    m68030 | m68851 },
  1622. {"ploadr",    two(0xf000, 0x2200),    two(0xffc0, 0xfffe),    "f3&s",    m68030 | m68851 },
  1623. {"ploadw",    two(0xf000, 0x2010),    two(0xffc0, 0xfff0),    "T3&s",    m68030 | m68851 },
  1624. {"ploadw",    two(0xf000, 0x2008),    two(0xffc0, 0xfff8),    "D3&s",    m68030 | m68851 },
  1625. {"ploadw",    two(0xf000, 0x2000),    two(0xffc0, 0xfffe),    "f3&s",    m68030 | m68851 },
  1626.  
  1627. /* TC, CRP, DRP, SRP, CAL, VAL, SCC, AC */
  1628. {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "*sP8",    m68030 | m68851 },
  1629. {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "P8%s",    m68030 | m68851 },
  1630. {"pmove",    two(0xf000, 0x4000),    two(0xffc0, 0xe3ff),    "|sW8",    m68030 | m68851 },
  1631. {"pmove",    two(0xf000, 0x4200),    two(0xffc0, 0xe3ff),    "W8~s",    m68030 | m68851 },
  1632.  
  1633. /* BADx, BACx */
  1634. {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xe3e3),    "*sX3",    m68030 | m68851 },
  1635. {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xe3e3),    "X3%s",    m68030 | m68851 },
  1636.  
  1637. /* PSR, PCSR */
  1638. /* {"pmove",    two(0xf000, 0x6100),    two(oxffc0, oxffff),    "*sZ8",    m68030 | m68851 }, */
  1639. {"pmove",    two(0xf000, 0x6000),    two(0xffc0, 0xffff),    "*sY8",    m68030 | m68851 },
  1640. {"pmove",    two(0xf000, 0x6200),    two(0xffc0, 0xffff),    "Y8%s",    m68030 | m68851 },
  1641. {"pmove",    two(0xf000, 0x6600),    two(0xffc0, 0xffff),    "Z8%s",    m68030 | m68851 },
  1642.  
  1643. {"prestore",    one(0xf140),        one(0xffc0),        "&s", m68851 },
  1644. {"prestore",    one(0xf158),        one(0xfff8),        "+s", m68851 },
  1645. {"psave",    one(0xf100),        one(0xffc0),        "&s", m68851 },
  1646. {"psave",    one(0xf100),        one(0xffc0),        "+s", m68851 },
  1647.  
  1648. {"psac",    two(0xf040, 0x0007),    two(0xffc0, 0xffff),    "@s", m68851 },
  1649. {"psas",    two(0xf040, 0x0006),    two(0xffc0, 0xffff),    "@s", m68851 },
  1650. {"psbc",    two(0xf040, 0x0001),    two(0xffc0, 0xffff),    "@s", m68851 },
  1651. {"psbs",    two(0xf040, 0x0000),    two(0xffc0, 0xffff),    "@s", m68851 },
  1652. {"pscc",    two(0xf040, 0x000f),    two(0xffc0, 0xffff),    "@s", m68851 },
  1653. {"pscs",    two(0xf040, 0x000e),    two(0xffc0, 0xffff),    "@s", m68851 },
  1654. {"psgc",    two(0xf040, 0x000d),    two(0xffc0, 0xffff),    "@s", m68851 },
  1655. {"psgs",    two(0xf040, 0x000c),    two(0xffc0, 0xffff),    "@s", m68851 },
  1656. {"psic",    two(0xf040, 0x000b),    two(0xffc0, 0xffff),    "@s", m68851 },
  1657. {"psis",    two(0xf040, 0x000a),    two(0xffc0, 0xffff),    "@s", m68851 },
  1658. {"pslc",    two(0xf040, 0x0003),    two(0xffc0, 0xffff),    "@s", m68851 },
  1659. {"psls",    two(0xf040, 0x0002),    two(0xffc0, 0xffff),    "@s", m68851 },
  1660. {"pssc",    two(0xf040, 0x0005),    two(0xffc0, 0xffff),    "@s", m68851 },
  1661. {"psss",    two(0xf040, 0x0004),    two(0xffc0, 0xffff),    "@s", m68851 },
  1662. {"pswc",    two(0xf040, 0x0009),    two(0xffc0, 0xffff),    "@s", m68851 },
  1663. {"psws",    two(0xf040, 0x0008),    two(0xffc0, 0xffff),    "@s", m68851 },
  1664.  
  1665. {"ptestr",    two(0xf000, 0x8210),    two(0xffc0, 0xe3f0),    "T3&sQ8",    m68030 | m68851 },
  1666. {"ptestr",    two(0xf000, 0x8310),    two(0xffc0, 0xe310),    "T3&sQ8A9",    m68030 | m68851 },
  1667. {"ptestr",    two(0xf000, 0x8208),    two(0xffc0, 0xe3f8),    "D3&sQ8",    m68030 | m68851 },
  1668. {"ptestr",    two(0xf000, 0x8308),    two(0xffc0, 0xe318),    "D3&sQ8A9",    m68030 | m68851 },
  1669. {"ptestr",    two(0xf000, 0x8200),    two(0xffc0, 0xe3fe),    "f3&sQ8",    m68030 | m68851 },
  1670. {"ptestr",    two(0xf000, 0x8300),    two(0xffc0, 0xe31e),    "f3&sQ8A9",    m68030 | m68851 },
  1671.  
  1672. {"ptestr",    one(0xf568),        one(0xfff8),        "As",        m68040 },
  1673.  
  1674. {"ptestw",    two(0xf000, 0x8010),    two(0xffc0, 0xe3f0),    "T3&sQ8",    m68030 | m68851 },
  1675. {"ptestw",    two(0xf000, 0x8110),    two(0xffc0, 0xe310),    "T3&sQ8A9",    m68030 | m68851 },
  1676. {"ptestw",    two(0xf000, 0x8008),    two(0xffc0, 0xe3f8),    "D3&sQ8",    m68030 | m68851 },
  1677. {"ptestw",    two(0xf000, 0x8108),    two(0xffc0, 0xe318),    "D3&sQ8A9",    m68030 | m68851 },
  1678. {"ptestw",    two(0xf000, 0x8000),    two(0xffc0, 0xe3fe),    "f3&sQ8",    m68030 | m68851 },
  1679. {"ptestw",    two(0xf000, 0x8100),    two(0xffc0, 0xe31e),    "f3&sQ8A9",    m68030 | m68851 },
  1680.  
  1681. {"ptestw",    one(0xf548),        one(0xfff8),        "As",        m68040 },
  1682.  
  1683. {"ptrapacw",    two(0xf07a, 0x0007),    two(0xffff, 0xffff),    "#w", m68851 },
  1684. {"ptrapacl",    two(0xf07b, 0x0007),    two(0xffff, 0xffff),    "#l", m68851 },
  1685. {"ptrapac",    two(0xf07c, 0x0007),    two(0xffff, 0xffff),    "",   m68851 },
  1686.  
  1687. {"ptrapasw",    two(0xf07a, 0x0006),    two(0xffff, 0xffff),    "#w", m68851 },
  1688. {"ptrapasl",    two(0xf07b, 0x0006),    two(0xffff, 0xffff),    "#l", m68851 },
  1689. {"ptrapas",    two(0xf07c, 0x0006),    two(0xffff, 0xffff),    "",   m68851 },
  1690.  
  1691. {"ptrapbcw",    two(0xf07a, 0x0001),    two(0xffff, 0xffff),    "#w", m68851 },
  1692. {"ptrapbcl",    two(0xf07b, 0x0001),    two(0xffff, 0xffff),    "#l", m68851 },
  1693. {"ptrapbc",    two(0xf07c, 0x0001),    two(0xffff, 0xffff),    "",   m68851 },
  1694.  
  1695. {"ptrapbsw",    two(0xf07a, 0x0000),    two(0xffff, 0xffff),    "#w", m68851 },
  1696. {"ptrapbsl",    two(0xf07b, 0x0000),    two(0xffff, 0xffff),    "#l", m68851 },
  1697. {"ptrapbs",    two(0xf07c, 0x0000),    two(0xffff, 0xffff),    "",   m68851 },
  1698.  
  1699. {"ptrapccw",    two(0xf07a, 0x000f),    two(0xffff, 0xffff),    "#w", m68851 },
  1700. {"ptrapccl",    two(0xf07b, 0x000f),    two(0xffff, 0xffff),    "#l", m68851 },
  1701. {"ptrapcc",    two(0xf07c, 0x000f),    two(0xffff, 0xffff),    "",   m68851 },
  1702.  
  1703. {"ptrapcsw",    two(0xf07a, 0x000e),    two(0xffff, 0xffff),    "#w", m68851 },
  1704. {"ptrapcsl",    two(0xf07b, 0x000e),    two(0xffff, 0xffff),    "#l", m68851 },
  1705. {"ptrapcs",    two(0xf07c, 0x000e),    two(0xffff, 0xffff),    "",   m68851 },
  1706.  
  1707. {"ptrapgcw",    two(0xf07a, 0x000d),    two(0xffff, 0xffff),    "#w", m68851 },
  1708. {"ptrapgcl",    two(0xf07b, 0x000d),    two(0xffff, 0xffff),    "#l", m68851 },
  1709. {"ptrapgc",    two(0xf07c, 0x000d),    two(0xffff, 0xffff),    "",   m68851 },
  1710.  
  1711. {"ptrapgsw",    two(0xf07a, 0x000c),    two(0xffff, 0xffff),    "#w", m68851 },
  1712. {"ptrapgsl",    two(0xf07b, 0x000c),    two(0xffff, 0xffff),    "#l", m68851 },
  1713. {"ptrapgs",    two(0xf07c, 0x000c),    two(0xffff, 0xffff),    "",   m68851 },
  1714.  
  1715. {"ptrapicw",    two(0xf07a, 0x000b),    two(0xffff, 0xffff),    "#w", m68851 },
  1716. {"ptrapicl",    two(0xf07b, 0x000b),    two(0xffff, 0xffff),    "#l", m68851 },
  1717. {"ptrapic",    two(0xf07c, 0x000b),    two(0xffff, 0xffff),    "",   m68851 },
  1718.  
  1719. {"ptrapisw",    two(0xf07a, 0x000a),    two(0xffff, 0xffff),    "#w", m68851 },
  1720. {"ptrapisl",    two(0xf07b, 0x000a),    two(0xffff, 0xffff),    "#l", m68851 },
  1721. {"ptrapis",    two(0xf07c, 0x000a),    two(0xffff, 0xffff),    "",   m68851 },
  1722.  
  1723. {"ptraplcw",    two(0xf07a, 0x0003),    two(0xffff, 0xffff),    "#w", m68851 },
  1724. {"ptraplcl",    two(0xf07b, 0x0003),    two(0xffff, 0xffff),    "#l", m68851 },
  1725. {"ptraplc",    two(0xf07c, 0x0003),    two(0xffff, 0xffff),    "",   m68851 },
  1726.  
  1727. {"ptraplsw",    two(0xf07a, 0x0002),    two(0xffff, 0xffff),    "#w", m68851 },
  1728. {"ptraplsl",    two(0xf07b, 0x0002),    two(0xffff, 0xffff),    "#l", m68851 },
  1729. {"ptrapls",    two(0xf07c, 0x0002),    two(0xffff, 0xffff),    "",   m68851 },
  1730.  
  1731. {"ptrapscw",    two(0xf07a, 0x0005),    two(0xffff, 0xffff),    "#w", m68851 },
  1732. {"ptrapscl",    two(0xf07b, 0x0005),    two(0xffff, 0xffff),    "#l", m68851 },
  1733. {"ptrapsc",    two(0xf07c, 0x0005),    two(0xffff, 0xffff),    "",   m68851 },
  1734.  
  1735. {"ptrapssw",    two(0xf07a, 0x0004),    two(0xffff, 0xffff),    "#w", m68851 },
  1736. {"ptrapssl",    two(0xf07b, 0x0004),    two(0xffff, 0xffff),    "#l", m68851 },
  1737. {"ptrapss",    two(0xf07c, 0x0004),    two(0xffff, 0xffff),    "",   m68851 },
  1738.  
  1739. {"ptrapwcw",    two(0xf07a, 0x0009),    two(0xffff, 0xffff),    "#w", m68851 },
  1740. {"ptrapwcl",    two(0xf07b, 0x0009),    two(0xffff, 0xffff),    "#l", m68851 },
  1741. {"ptrapwc",    two(0xf07c, 0x0009),    two(0xffff, 0xffff),    "",   m68851 },
  1742.  
  1743. {"ptrapwsw",    two(0xf07a, 0x0008),    two(0xffff, 0xffff),    "#w", m68851 },
  1744. {"ptrapwsl",    two(0xf07b, 0x0008),    two(0xffff, 0xffff),    "#l", m68851 },
  1745. {"ptrapws",    two(0xf07c, 0x0008),    two(0xffff, 0xffff),    "",   m68851 },
  1746.  
  1747. {"pvalid",    two(0xf000, 0x2800),    two(0xffc0, 0xffff),    "Vs&s", m68851 },
  1748. {"pvalid",    two(0xf000, 0x2c00),    two(0xffc0, 0xfff8),    "A3&s", m68851 },
  1749.  
  1750. #endif /* NO_68851 */
  1751.  
  1752. {"reset",    one(0047160),        one(0177777),        "", m68000up },
  1753.  
  1754. {"rolb",    one(0160430),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1755. {"rolb",    one(0160470),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1756. {"roll",    one(0160630),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1757. {"roll",    one(0160670),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1758. {"rolw",    one(0160530),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1759. {"rolw",    one(0160570),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1760. {"rolw",    one(0163700),        one(0177700),        "~s",   m68000up },    /* Rotate memory */
  1761. {"rorb",    one(0160030),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1762. {"rorb",    one(0160070),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1763. {"rorl",    one(0160230),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1764. {"rorl",    one(0160270),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1765. {"rorw",    one(0160130),        one(0170770),        "QdDs", m68000up },    /* rorb #Q,    Ds */
  1766. {"rorw",    one(0160170),        one(0170770),        "DdDs", m68000up },    /* rorb Dd,    Ds */
  1767. {"rorw",    one(0163300),        one(0177700),        "~s",   m68000up },    /* Rotate memory */
  1768.  
  1769. {"roxlb",    one(0160420),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1770. {"roxlb",    one(0160460),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1771. {"roxll",    one(0160620),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1772. {"roxll",    one(0160660),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1773. {"roxlw",    one(0160520),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1774. {"roxlw",    one(0160560),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1775. {"roxlw",    one(0162700),        one(0177700),        "~s",   m68000up },    /* Rotate memory */
  1776. {"roxrb",    one(0160020),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1777. {"roxrb",    one(0160060),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1778. {"roxrl",    one(0160220),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1779. {"roxrl",    one(0160260),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1780. {"roxrw",    one(0160120),        one(0170770),        "QdDs", m68000up },    /* roxrb #Q,    Ds */
  1781. {"roxrw",    one(0160160),        one(0170770),        "DdDs", m68000up },    /* roxrb Dd,    Ds */
  1782. {"roxrw",    one(0162300),        one(0177700),        "~s",   m68000up },    /* Rotate memory */
  1783.  
  1784. {"rtd",        one(0047164),        one(0177777),        "#w", m68010up },
  1785. {"rte",        one(0047163),        one(0177777),        "",   m68000up },
  1786. {"rtm",        one(0003300),        one(0177760),        "Rs", m68020 },
  1787. {"rtr",        one(0047167),        one(0177777),        "",   m68000up },
  1788. {"rts",        one(0047165),        one(0177777),        "",   m68000up },
  1789.  
  1790. {"sbcd",    one(0100400),        one(0170770),        "DsDd", m68000up },
  1791. {"sbcd",    one(0100410),        one(0170770),        "-s-d", m68000up },
  1792.  
  1793. {"scc",        one(0052300),        one(0177700),        "$s", m68000up },
  1794. {"scs",        one(0052700),        one(0177700),        "$s", m68000up },
  1795. {"seq",        one(0053700),        one(0177700),        "$s", m68000up },
  1796. {"sf",        one(0050700),        one(0177700),        "$s", m68000up },
  1797. {"sge",        one(0056300),        one(0177700),        "$s", m68000up },
  1798. {"sfge",    one(0056300),        one(0177700),        "$s", m68000up },
  1799. {"sgt",        one(0057300),        one(0177700),        "$s", m68000up },
  1800. {"sfgt",    one(0057300),        one(0177700),        "$s", m68000up },
  1801. {"shi",        one(0051300),        one(0177700),        "$s", m68000up },
  1802. {"sle",        one(0057700),        one(0177700),        "$s", m68000up },
  1803. {"sfle",    one(0057700),        one(0177700),        "$s", m68000up },
  1804. {"sls",        one(0051700),        one(0177700),        "$s", m68000up },
  1805. {"slt",        one(0056700),        one(0177700),        "$s", m68000up },
  1806. {"sflt",    one(0056700),        one(0177700),        "$s", m68000up },
  1807. {"smi",        one(0055700),        one(0177700),        "$s", m68000up },
  1808. {"sne",        one(0053300),        one(0177700),        "$s", m68000up },
  1809. {"sfneq",    one(0053300),        one(0177700),        "$s", m68000up },
  1810. {"spl",        one(0055300),        one(0177700),        "$s", m68000up },
  1811. {"st",        one(0050300),        one(0177700),        "$s", m68000up },
  1812. {"svc",        one(0054300),        one(0177700),        "$s", m68000up },
  1813. {"svs",        one(0054700),        one(0177700),        "$s", m68000up },
  1814.  
  1815. {"stop",    one(0047162),        one(0177777),        "#w", m68000up },
  1816.  
  1817. {"subal",    one(0110700),        one(0170700),        "*lAd", m68000up },
  1818. {"subaw",    one(0110300),        one(0170700),        "*wAd", m68000up },
  1819. {"subb",    one(0050400),        one(0170700),        "Qd%s", m68000up },    /* subq written as sub */
  1820. {"subb",    one(0002000),        one(0177700),        "#b$s", m68000up },    /* subi written as sub */
  1821. {"subb",    one(0110000),        one(0170700),        ";bDd", m68000up },    /* subb ? ?,    Dd */
  1822. {"subb",    one(0110400),        one(0170700),        "Dd~s", m68000up },    /* subb Dd,    ? ? */
  1823. {"subib",    one(0002000),        one(0177700),        "#b$s", m68000up },
  1824. {"subil",    one(0002200),        one(0177700),        "#l$s", m68000up },
  1825. {"subiw",    one(0002100),        one(0177700),        "#w$s", m68000up },
  1826. {"subl",    one(0050600),        one(0170700),        "Qd%s", m68000up },
  1827. {"subl",    one(0002200),        one(0177700),        "#l$s", m68000up },
  1828. {"subl",    one(0110700),        one(0170700),        "*lAd", m68000up },
  1829. {"subl",    one(0110200),        one(0170700),        "*lDd", m68000up },
  1830. {"subl",    one(0110600),        one(0170700),        "Dd~s", m68000up },
  1831. {"subqb",    one(0050400),        one(0170700),        "Qd%s", m68000up },
  1832. {"subql",    one(0050600),        one(0170700),        "Qd%s", m68000up },
  1833. {"subqw",    one(0050500),        one(0170700),        "Qd%s", m68000up },
  1834. {"subw",    one(0050500),        one(0170700),        "Qd%s", m68000up },
  1835. {"subw",    one(0002100),        one(0177700),        "#w$s", m68000up },
  1836. {"subw",    one(0110100),        one(0170700),        "*wDd", m68000up },
  1837. {"subw",    one(0110300),        one(0170700),        "*wAd", m68000up },    /* suba written as sub */
  1838. {"subw",    one(0110500),        one(0170700),        "Dd~s", m68000up },
  1839. {"subxb",    one(0110400),        one(0170770),        "DsDd", m68000up },    /* subxb Ds,    Dd */
  1840. {"subxb",    one(0110410),        one(0170770),        "-s-d", m68000up },    /* subxb -(As),    -(Ad) */
  1841. {"subxl",    one(0110600),        one(0170770),        "DsDd", m68000up },
  1842. {"subxl",    one(0110610),        one(0170770),        "-s-d", m68000up },
  1843. {"subxw",    one(0110500),        one(0170770),        "DsDd", m68000up },
  1844. {"subxw",    one(0110510),        one(0170770),        "-s-d", m68000up },
  1845.  
  1846. {"swap",    one(0044100),        one(0177770),        "Ds", m68000up },
  1847.     
  1848. {"tas",        one(0045300),        one(0177700),        "$s", m68000up },
  1849. {"trap",    one(0047100),        one(0177760),        "Ts", m68000up },
  1850.  
  1851. {"trapcc",    one(0052374),        one(0177777),        "", m68020up },
  1852. {"trapcs",    one(0052774),        one(0177777),        "", m68020up },
  1853. {"trapeq",    one(0053774),        one(0177777),        "", m68020up },
  1854. {"trapf",    one(0050774),        one(0177777),        "", m68020up },
  1855. {"trapge",    one(0056374),        one(0177777),        "", m68020up },
  1856. {"trapgt",    one(0057374),        one(0177777),        "", m68020up },
  1857. {"traphi",    one(0051374),        one(0177777),        "", m68020up },
  1858. {"traple",    one(0057774),        one(0177777),        "", m68020up },
  1859. {"trapls",    one(0051774),        one(0177777),        "", m68020up },
  1860. {"traplt",    one(0056774),        one(0177777),        "", m68020up },
  1861. {"trapmi",    one(0055774),        one(0177777),        "", m68020up },
  1862. {"trapne",    one(0053374),        one(0177777),        "", m68020up },
  1863. {"trappl",    one(0055374),        one(0177777),        "", m68020up },
  1864. {"trapt",    one(0050374),        one(0177777),        "", m68020up },
  1865. {"trapvc",    one(0054374),        one(0177777),        "", m68020up },
  1866. {"trapvs",    one(0054774),        one(0177777),        "", m68020up },
  1867.  
  1868. {"trapcc.w",    one(0052372),        one(0177777),        "", m68020up },
  1869. {"trapcs.w",    one(0052772),        one(0177777),        "", m68020up },
  1870. {"trapeq.w",    one(0053772),        one(0177777),        "", m68020up },
  1871. {"trapf.w",    one(0050772),        one(0177777),        "", m68020up },
  1872. {"trapge.w",    one(0056372),        one(0177777),        "", m68020up },
  1873. {"trapgt.w",    one(0057372),        one(0177777),        "", m68020up },
  1874. {"traphi.w",    one(0051372),        one(0177777),        "", m68020up },
  1875. {"traple.w",    one(0057772),        one(0177777),        "", m68020up },
  1876. {"trapls.w",    one(0051772),        one(0177777),        "", m68020up },
  1877. {"traplt.w",    one(0056772),        one(0177777),        "", m68020up },
  1878. {"trapmi.w",    one(0055772),        one(0177777),        "", m68020up },
  1879. {"trapne.w",    one(0053372),        one(0177777),        "", m68020up },
  1880. {"trappl.w",    one(0055372),        one(0177777),        "", m68020up },
  1881. {"trapt.w",    one(0050372),        one(0177777),        "", m68020up },
  1882. {"trapvc.w",    one(0054372),        one(0177777),        "", m68020up },
  1883. {"trapvs.w",    one(0054772),        one(0177777),        "", m68020up },
  1884.  
  1885. {"trapcc.l",    one(0052373),        one(0177777),        "", m68020up },
  1886. {"trapcs.l",    one(0052773),        one(0177777),        "", m68020up },
  1887. {"trapeq.l",    one(0053773),        one(0177777),        "", m68020up },
  1888. {"trapf.l",    one(0050773),        one(0177777),        "", m68020up },
  1889. {"trapge.l",    one(0056373),        one(0177777),        "", m68020up },
  1890. {"trapgt.l",    one(0057373),        one(0177777),        "", m68020up },
  1891. {"traphi.l",    one(0051373),        one(0177777),        "", m68020up },
  1892. {"traple.l",    one(0057773),        one(0177777),        "", m68020up },
  1893. {"trapls.l",    one(0051773),        one(0177777),        "", m68020up },
  1894. {"traplt.l",    one(0056773),        one(0177777),        "", m68020up },
  1895. {"trapmi.l",    one(0055773),        one(0177777),        "", m68020up },
  1896. {"trapne.l",    one(0053373),        one(0177777),        "", m68020up },
  1897. {"trappl.l",    one(0055373),        one(0177777),        "", m68020up },
  1898. {"trapt.l",    one(0050373),        one(0177777),        "", m68020up },
  1899. {"trapvc.l",    one(0054373),        one(0177777),        "", m68020up },
  1900. {"trapvs.l",    one(0054773),        one(0177777),        "", m68020up },
  1901.  
  1902. {"trapv",    one(0047166),        one(0177777),        "", m68000up },
  1903.  
  1904. {"tstb",    one(0045000),        one(0177700),        ";b", m68000up },
  1905. {"tstw",    one(0045100),        one(0177700),        "*w", m68000up },
  1906. {"tstl",    one(0045200),        one(0177700),        "*l", m68000up },
  1907.  
  1908. {"unlk",    one(0047130),        one(0177770),        "As", m68000up },
  1909. {"unpk",    one(0100600),        one(0170770),        "DsDd#w", m68020up },
  1910. {"unpk",    one(0100610),        one(0170770),        "-s-d#w", m68020up },
  1911.  
  1912. /* Variable-sized branches */
  1913.  
  1914. {"jbsr",    one(0060400),        one(0177400),        "Bg", m68000up },
  1915. {"jbsr",    one(0047200),        one(0177700),        "!s", m68000up },
  1916. {"jra",        one(0060000),        one(0177400),        "Bg", m68000up },
  1917. {"jra",        one(0047300),        one(0177700),        "!s", m68000up },
  1918.  
  1919. {"jhi",        one(0061000),        one(0177400),        "Bg", m68000up },
  1920. {"jls",        one(0061400),        one(0177400),        "Bg", m68000up },
  1921. {"jcc",        one(0062000),        one(0177400),        "Bg", m68000up },
  1922. {"jcs",        one(0062400),        one(0177400),        "Bg", m68000up },
  1923. {"jne",        one(0063000),        one(0177400),        "Bg", m68000up },
  1924. {"jeq",        one(0063400),        one(0177400),        "Bg", m68000up },
  1925. {"jvc",        one(0064000),        one(0177400),        "Bg", m68000up },
  1926. {"jvs",        one(0064400),        one(0177400),        "Bg", m68000up },
  1927. {"jpl",        one(0065000),        one(0177400),        "Bg", m68000up },
  1928. {"jmi",        one(0065400),        one(0177400),        "Bg", m68000up },
  1929. {"jge",        one(0066000),        one(0177400),        "Bg", m68000up },
  1930. {"jlt",        one(0066400),        one(0177400),        "Bg", m68000up },
  1931. {"jgt",        one(0067000),        one(0177400),        "Bg", m68000up },
  1932. {"jle",        one(0067400),        one(0177400),        "Bg", m68000up },
  1933.  
  1934. /* aliases */
  1935.  
  1936. {"movql",    one(0070000),        one(0170400),        "MsDd", m68000up },
  1937. {"moveql",    one(0070000),        one(0170400),        "MsDd", m68000up },
  1938. {"moval",    one(0020100),        one(0170700),        "*lAd", m68000up },
  1939. {"movaw",    one(0030100),        one(0170700),        "*wAd", m68000up },
  1940. {"movb",    one(0010000),        one(0170000),        ";b$d", m68000up },    /* mov */
  1941. {"movl",    one(0070000),        one(0170400),        "MsDd", m68000up },    /* movq written as mov */
  1942. {"movl",    one(0020000),        one(0170000),        "*l$d", m68000up },
  1943. {"movl",    one(0020100),        one(0170700),        "*lAd", m68000up },
  1944. {"movl",    one(0047140),        one(0177770),        "AsUd", m68000up },    /* mov to USP */
  1945. {"movl",    one(0047150),        one(0177770),        "UdAs", m68000up },    /* mov from USP */
  1946. {"movc",    one(0047173),        one(0177777),        "R1Jj", m68010up },
  1947. {"movc",    one(0047173),        one(0177777),        "R1#j", m68010up },
  1948. {"movc",    one(0047172),        one(0177777),        "JjR1", m68010up },
  1949. {"movc",    one(0047172),        one(0177777),        "#jR1", m68010up },
  1950. {"movml",    one(0044300),        one(0177700),        "#w&s", m68000up },    /* movm reg to mem. */
  1951. {"movml",    one(0044340),        one(0177770),        "#w-s", m68000up },    /* movm reg to autodecrement. */
  1952. {"movml",    one(0046300),        one(0177700),        "!s#w", m68000up },    /* movm mem to reg. */
  1953. {"movml",    one(0046330),        one(0177770),        "+s#w", m68000up },    /* movm autoinc to reg. */
  1954. {"movml",    one(0044300),        one(0177700),        "Lw&s", m68000up },    /* movm reg to mem. */
  1955. {"movml",    one(0044340),        one(0177770),        "lw-s", m68000up },    /* movm reg to autodecrement. */
  1956. {"movml",    one(0046300),        one(0177700),        "!sLw", m68000up },    /* movm mem to reg. */
  1957. {"movml",    one(0046330),        one(0177770),        "+sLw", m68000up },    /* movm autoinc to reg. */
  1958. {"movmw",    one(0044200),        one(0177700),        "#w&s", m68000up },    /* movm reg to mem. */
  1959. {"movmw",    one(0044240),        one(0177770),        "#w-s", m68000up },    /* movm reg to autodecrement. */
  1960. {"movmw",    one(0046200),        one(0177700),        "!s#w", m68000up },    /* movm mem to reg. */
  1961. {"movmw",    one(0046230),        one(0177770),        "+s#w", m68000up },    /* movm autoinc to reg. */
  1962. {"movmw",    one(0044200),        one(0177700),        "Lw&s", m68000up },    /* movm reg to mem. */
  1963. {"movmw",    one(0044240),        one(0177770),        "lw-s", m68000up },    /* movm reg to autodecrement. */
  1964. {"movmw",    one(0046200),        one(0177700),        "!sLw", m68000up },    /* movm mem to reg. */
  1965. {"movmw",    one(0046230),        one(0177770),        "+sLw", m68000up },    /* movm autoinc to reg. */
  1966. {"movpl",    one(0000510),        one(0170770),        "dsDd", m68000up },    /* memory to register */
  1967. {"movpl",    one(0000710),        one(0170770),        "Ddds", m68000up },    /* register to memory */
  1968. {"movpw",    one(0000410),        one(0170770),        "dsDd", m68000up },    /* memory to register */
  1969. {"movpw",    one(0000610),        one(0170770),        "Ddds", m68000up },    /* register to memory */
  1970. {"movq",    one(0070000),        one(0170400),        "MsDd", m68000up },
  1971. {"movw",    one(0030000),        one(0170000),        "*w$d", m68000up },
  1972. {"movw",    one(0030100),        one(0170700),        "*wAd", m68000up },    /* mova,    written as mov */
  1973. {"movw",    one(0040300),        one(0177700),        "Ss$s", m68000up },    /* Move from sr */
  1974. {"movw",    one(0041300),        one(0177700),        "Cs$s", m68010up },    /* Move from ccr */
  1975. {"movw",    one(0042300),        one(0177700),        ";wCd", m68000up },    /* mov to ccr */
  1976. {"movw",    one(0043300),        one(0177700),        ";wSd", m68000up },    /* mov to sr */
  1977.  
  1978. {"movsb",    two(0007000, 0),    two(0177700, 07777),    "~sR1", m68010up },
  1979. {"movsb",    two(0007000, 04000),    two(0177700, 07777),    "R1~s", m68010up },
  1980. {"movsl",    two(0007200, 0),    two(0177700, 07777),    "~sR1", m68010up },
  1981. {"movsl",    two(0007200, 04000),    two(0177700, 07777),    "R1~s", m68010up },
  1982. {"movsw",    two(0007100, 0),    two(0177700, 07777),    "~sR1", m68010up },
  1983. {"movsw",    two(0007100, 04000),    two(0177700, 07777),    "R1~s", m68010up },
  1984.  
  1985. };
  1986.  
  1987. int numopcodes=sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1988.  
  1989. struct m68k_opcode *endop = m68k_opcodes+sizeof(m68k_opcodes)/sizeof(m68k_opcodes[0]);
  1990.  
  1991. /*
  1992.  * Local Variables:
  1993.  * fill-column: 131
  1994.  * End:
  1995.  */
  1996.  
  1997. /* end of m68k-opcode.h */
  1998.